Spark - 获取零件文件后缀

时间:2018-04-30 21:28:35

标签: apache-spark hadoop mapreduce hdfs

当Spark使用Hadoop编写器编写部分文件(使用saveAsTextFile())时,这是一般格式" part-NNNNN"它将文件保存在。如何检索此后缀" NNNNN"在运行时的Spark?

聚苯乙烯。我不想列出文件,然后检索后缀。

1 个答案:

答案 0 :(得分:1)

文件名为part-00000part-00001,依此类推。每个RDD分区都写入一个part-文件。因此,输出文件的数量将取决于正在写出的RDD中的分区。

您可以检查正在为分区数量编写的RDD(例如5),然后访问文件part-00000part-00004

<强>插图

通过查询Hive表

来构建DataFrame
scala> val df1=sqlContext.sql("select * from default.hive_table");

获取RDD分区数

scala> df1.rdd.partitions.size
res4: Int = 11

将DataFrame保存到HDFS

scala> df1.rdd.saveAsTextFile("/process_output")

检查HDFS输出位置

hadoop fs -ls /process_output
Found 12 items
-rw-r--r--   3 root hdfs          0 2018-05-01 08:51 /process_output/_SUCCESS
-rw-r--r--   3 root hdfs        190 2018-05-01 08:51 /process_output/part-00000
-rw-r--r--   3 root hdfs        190 2018-05-01 08:51 /process_output/part-00001
-rw-r--r--   3 root hdfs        182 2018-05-01 08:51 /process_output/part-00002
-rw-r--r--   3 root hdfs        190 2018-05-01 08:51 /process_output/part-00003
-rw-r--r--   3 root hdfs        180 2018-05-01 08:51 /process_output/part-00004
-rw-r--r--   3 root hdfs        190 2018-05-01 08:51 /process_output/part-00005
-rw-r--r--   3 root hdfs        190 2018-05-01 08:51 /process_output/part-00006
-rw-r--r--   3 root hdfs        190 2018-05-01 08:51 /process_output/part-00007
-rw-r--r--   3 root hdfs        190 2018-05-01 08:51 /process_output/part-00008
-rw-r--r--   3 root hdfs        190 2018-05-01 08:51 /process_output/part-00009
-rw-r--r--   3 root hdfs        190 2018-05-01 08:51 /process_output/part-00010