文本数据源仅支持单列,而您有 8 列

HIS*_*ISI 3 scala apache-spark

这是我尝试将数据框保存到文本时遇到的错误:

org.apache.spark.sql.AnalysisException: Text data source supports only a single column, and you have 8 columns
Run Code Online (Sandbox Code Playgroud)

这是代码:

df.write.text("/tmp/wt")
Run Code Online (Sandbox Code Playgroud)

我做错了什么?

Oli*_*Oli 5

在Spark 1.6中,最简单的解决方案是使用databricks的库并编写:

df.write.format("com.databricks.spark.csv").save("pathToFile.csv")
Run Code Online (Sandbox Code Playgroud)

如果您不想使用它,您可以简单地将数据帧的行转换为 csv 行,如下所示:

df.rdd
  .map(_.toSeq.map(_+"").reduce(_+";"+_))
  .saveAsTextFile("pathToFile.csv")
Run Code Online (Sandbox Code Playgroud)

请注意,如果您的字段可以包含分隔符或引号,您将必须添加封闭引号并转义现有引号,这些都是库会透明地为您做的事情。