Spark Dataframe将零件文件写入_temporary中,而不是直接在输出目录中创建partFiles

时间:2018-08-31 04:14:14

标签: scala csv apache-spark apache-spark-sql

  

在独立群集模式下运行Spark 2.0.2; 2个工作人员和1个主节点

简单测试;读取管道分隔文件并将数据写入csv。下面的命令在具有master-url设置的spark-shell中执行

val df = spark.sqlContext.read.option("delimiter","|").option("quote","\u0000").csv("/home/input-files/")
val emailDf=df.filter("_c3='EML'")
emailDf.repartition(100).write.csv("/opt/outputFile/")

在具有主URL设置的spark-shell中执行以上cmds之后。

  

worker1中->每个零件文件都在/opt/outputFile/_temporary/task-xxxxx-xxx/part-xxx-xxx中创建
  在worker2-> /opt/outputFile/part-xxx =>中,直接在写入期间指定的outputDirectory下生成零件文件。

coalcece(100)或未指定重新分区/合并都发生了同样的事情!

Quesiton

1)为什么worker1 /opt/outputFile/的输出目录没有part-xxxx中的worker2文件?为什么创建_temporary目录并且part-xxx-xx文件驻留在task-xxx目录中?

2)是因为我没有在群集上安装HDFS吗??

0 个答案:

没有答案