【问题标题】:Spark Dataset write() method returns errorSpark Dataset write() 方法返回错误
【发布时间】:2018-07-11 19:14:33
【问题描述】:

我正在尝试使用 Databricks 库加载 XML 文件并将数据写入文件,但我无法将输出 data(array<string>) 写入 csv 文件。

我收到以下错误:

Exception in thread "main" java.lang.UnsupportedOperationException: CSV data source does not support array<string> data type.

当我打印数据集时,它会像这样打印:

+--------------------+
|             orgname|
+--------------------+
|[Muncy, Geissler,...|
|[Muncy, Geissler,...|
|[Knobbe Martens O...|
|[null, Telekta La...|
|[McAndrews, Held ...|
|[Notaro, Michalos...|
|                null|
|[Cowan, Liebowitz...|
|                null|
|[Kunzler Law Grou...|
|[null, null, Klei...|
|[Knobbe, Martens,...|
|[Merchant & Gould...|
|                null|
|[Culhane Meadows ...|
|[Culhane Meadows ...|
|[Vista IP Law Gro...|
|[Thompson & Knigh...|
|  [Fish & Tsang LLP]|
|                null|
+--------------------+

【问题讨论】:

    标签: xml csv hadoop apache-spark dataset


    【解决方案1】:

    异常应该是不言自明的。您不能将数组写入CSV 文件。

    你必须把它连接成一个字符串:

    import org.apache.spark.sql.functions.concat_ws
    
    val separator: String = ";"  // Choose appropriate one in your case
    
    df.withColumn("orgname", concat_ws(separator, $"orgname")).write.csv(...)
    

    【讨论】:

    • 干得好兄弟
    猜你喜欢
    • 2012-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-03
    • 1970-01-01
    • 2020-07-15
    • 1970-01-01
    相关资源
    最近更新 更多