2016-11-21 50 views
1

我目前正在做Apache Spark的第一次嘗試。 我想用SQLContext對象讀取.csv文件,但Spark不會提供正確的結果,因爲File是歐洲的(逗號作爲小數點分隔符和分號用作值分隔符)。 有沒有辦法告訴Spark遵循不同的.csv語法?使用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 

火花解釋整個行作爲列。 df.show()打印:

+--------------------------------+ 
|Col1;Col2,Col3;Col4;Col5  | 
+--------------------------------+ 
|   04.10.2016;12:51:...| 
+--------------------------------+ 

在以前曾試圖得到它的工作df.show()甚至是印刷更多行內容它現在說「...」,但最終切割排在逗號第三山坳。

回答

1

您可以閱讀爲測試和拆分;或者將自定義分隔符設置爲CSV格式,如.option("delimiter",";")

+0

工作正常!非常感謝! :) –

+0

是否用逗號(',')作爲小數點分隔符正確地讀入數字? – Ahue