【问题标题】:Read .csv data in european format with Spark使用 Spark 读取欧洲格式的 .csv 数据
【发布时间】: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


    【解决方案1】:

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

    【讨论】:

    • 它是否正确读取以逗号 (,) 作为小数分隔符的数字?
    猜你喜欢
    • 1970-01-01
    • 2018-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-26
    • 2020-09-01
    • 2018-03-25
    • 1970-01-01
    相关资源
    最近更新 更多