【发布时间】:2016-11-21 20:32:13
【问题描述】:
我目前正在第一次尝试使用 Apache Spark。 我想读取带有 SQLContext 对象的 .csv 文件,但 Spark 不会提供正确的结果,因为该文件是欧洲文件(逗号作为小数分隔符,分号用作值分隔符)。 有没有办法告诉 Spark 遵循不同的 .csv 语法?
val conf = new SparkConf()
.setMaster("local[8]")
.setAppName("Foo")
val sc = new SparkContext(conf)
val sqlContext = new SQLContext(sc)
val df = sqlContext.read
.format("org.apache.spark.sql.execution.datasources.csv.CSVFileFormat")
.option("header","true")
.option("inferSchema","true")
.load("data.csv")
df.show()
相关 .csv 中的一行如下所示:
04.10.2016;12:51:00;1,1;0,41;0,416
Spark 将整行解释为一列。 df.show() 打印:
+--------------------------------+
|Col1;Col2,Col3;Col4;Col5 |
+--------------------------------+
| 04.10.2016;12:51:...|
+--------------------------------+
在之前的尝试中,df.show() 甚至在现在显示“...”的地方打印了更多的行内容,但最终在第三列的逗号处删除了行。
【问题讨论】:
标签: scala csv apache-spark syntax