HanCheol Cho created SPARK-20336:
------------------------------------

             Summary: spark.read.csv() with wholeFile=True option fails to read 
non ASCII unicode characters
                 Key: SPARK-20336
                 URL: https://issues.apache.org/jira/browse/SPARK-20336
             Project: Spark
          Issue Type: Bug
          Components: SQL
    Affects Versions: 2.2.0
         Environment: Spark 2.2.0 (master branch is downloaded from Github)
PySpark
            Reporter: HanCheol Cho


I used spark.read.csv() method with wholeFile=True option to load data that has 
multi-line records.
However, non-ASCII characters are not properly loaded.

The following is a sample data for test:
{code:none}
col1,col2,col3
1,a,text
2,b,テキスト
3,c,텍스트
4,d,"text
テキスト
텍스트
5,e,last
{code}

When it is loaded without wholeFile=True option, non-ASCII characters are shown 
correctly although multi-line records are parsed incorrectly as follows:
{code:none}
testdf_default = spark.read.csv("test.encoding.csv", header=True)
testdf_default.show()
+----+----+----+
|col1|col2|col3|
+----+----+----+
|   1|   a|text|
|   2|   b|テキスト|
|   3|   c| 텍스트|
|   4|   d|text|
|テキスト|null|null|
| 텍스트|null|null|
|   5|   e|last|
+----+----+----+
{code}

When wholeFile=True option is used, non-ASCII characters are broken as follows:
{code:none}
testdf_wholefile = spark.read.csv("test.encoding.csv", header=True, 
wholeFile=True)
testdf_wholefile.show()
+----+----+--------------------+
|col1|col2|                col3|
+----+----+--------------------+
|   1|   a|                text|
|   2|   b|        ������������|
|   3|   c|           ���������|
|   4|   d|text
������������...|
+----+----+--------------------+
{code}

The result is same even if I use encoding="UTF-8" option with wholeFile=True.






--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to