【问题标题】:Scala dataframe export to csv only created a folderScala 数据框导出到 csv 只创建了一个文件夹
【发布时间】:2019-02-21 18:00:57
【问题描述】:

我有 spark 2.4.0 和一个数据框

scala> dfExport.show(5)
+--------------+----+---+
|predictedLabel| AAB|AAC|
+--------------+----+---+
|             2|30.0|  1|
|             3|31.1|  2|
|             2|56.0|  1|
|             2|12.0|  3|
|             3|18.0|  2|
+--------------+----+---+
only showing top 5 rows

我尝试使用以下代码将其导出到 csv 文件。

scala>dfExport.write.format("com.databricks.spark.csv").option("header","true").save("E://...//Output.csv") 
scala>dfExport.write.csv("E://...//Output.csv")

它只在路径下创建了一个名为“Output.csv”的文件夹,并出现以下错误。我错过了什么吗?

ERROR Executor:91 - Exception in task 0.0 in stage 42.0 (TID 45)
java.lang.UnsatisfiedLinkError: org.apache.hadoop.io.nativeio.NativeIO$Windows.createFileWithMode0(Ljava/lang/String;JJJI)Ljava/io/FileDescriptor;

【问题讨论】:

标签: scala apache-spark export-to-csv


【解决方案1】:

最后,我尝试了这个 Java 包,它成功了。数据框中的每一行都被转换为一个数组并写入目标文件。

import java.io.{File, PrintWriter}

var array=df.collect

val writer = new PrintWriter(new File("E:\\....\\Output.csv" ))

writer.write("AAA,AAB,AAC,AAD"+"\n")

for (i<-0 to array.length-1){
  writer.write(array(i).toString.replace("[","").replace("]","")+"\n")
}

writer.close()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-09
    • 2021-05-31
    • 2021-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-16
    • 1970-01-01
    相关资源
    最近更新 更多