【发布时间】:2019-12-05 23:04:29
【问题描述】:
我希望有人可以帮助我。我的问题如下:
要在 Spark 中读取 CSV 文件,我使用的是代码
val df=spark.read.option("header","true").option("inferSchema","true").csv("/home/user/Documents/filename.csv")
假设我的文件名为filename.csv,路径为/home/user/Documents/
显示我使用的前 10 个结果
df.show(10)
但我得到了以下结果,其中包含字符 �,并且没有按需要显示 10 个结果
scala> df.show(10)
+--------+---------+---------+-----------------+
| c1| c2| c3| c4|
+--------+---------+---------+-----------------+
|��1.0|5450|3007|20160101|
+--------+---------+---------+-----------------+
CSV 文件看起来像这样
c1 c2 c3 c4
1 5450 3007 20160101
2 2156 1414 20160107
1 78229 3656 20160309
1 34963 4484 20160104
1 7897 3350 20160105
11 13247 3242 20160303
2 4957 3350 20160124
1 73083 4211 20160207
我要读取的文件很大。当我尝试较小的文件时,我没有得到奇怪的字符,我可以毫无问题地看到前 10 个结果。
感谢任何帮助。
【问题讨论】:
-
spark的默认字符集编码是UTF-8,你确定你的csv文件编码是UTF-8吗?
-
嗯好吧,显然我的文件的编码是 UTF-16。我会尝试改变它(如果可能的话)然后再试一次
-
您可能还想将
trim应用于您的数据。例如,当您在 Excel 中打开 CSV 时,奇怪的字符可能会被塞进 CSV。 -
我无法将文件转换为 UTF-8。当我试图重新保存它时,它足以让 LibreOffice 和 Notepadqq 崩溃。无论如何感谢您的帮助!
标签: csv apache-spark