【问题标题】:Spark read csv: Using "sep" option for tab but everything comes up in one column [duplicate]Spark读取csv:对选项卡使用“sep”选项,但所有内容都出现在一列中[重复]
【发布时间】:2018-04-19 03:38:38
【问题描述】:

我正在尝试在 spark (scala) 中读取制表符分隔的文件,如下所示:

spark.read.option("sep", '\t').csv(location)

但是架构是这样出来的:

scala> df.printSchema
root
 |-- _c0: string (nullable = true)


scala> df.show
+------+
|   _c0|
+------+
|3  1   .1|
|3  2   .2|
|3  4   .3|
|2  1   .4|
|2  3   .5|
+------+

我做错了什么?

更新:我认为这与如何在 spark 中读取 TSV 文件的一般问题不同,因为传递分隔符的字符参数而不是字符串会破坏任何东西并不明显——事实上,当我进入它说它只是在 value 参数上调用 .toString 的代码,应该使得传递 '\t' 等同于传递 "\t"。因为它是我仍然不知道出了什么问题,但我知道切换到“\ t”修复了它。希望能解释差异的人能在某个时候插话。

【问题讨论】:

    标签: apache-spark


    【解决方案1】:

    将制表符作为字符串而不是字符来修复它:

    scala> val df = spark.read.option("sep", "\t").csv(location)
    df: org.apache.spark.sql.DataFrame = [_c0: string, _c1: string ... 1 more field]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多