使用Spark读取欧洲格式的.csv数据

时间:2016-11-21 20:32:13

标签: scala csv apache-spark syntax

我目前正在使用Apache Spark进行首次尝试。 我想读取带有SQLContext对象的.csv文件,但Spark不会提供正确的结果,因为File是欧洲文件(逗号为小数分隔符,分号用作值分隔符)。 有没有办法告诉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()甚至打印了更多行内容,现在它说'...'但最终在第三列的逗号处删除了行。

1 个答案:

答案 0 :(得分:2)

你可以读作Test并分开;或者将自定义分隔符设置为CSV格式,如.option("delimiter",";")