Spark - 获取部件文件后缀



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

附言。我不想列出文件然后检索后缀。

这些文件被命名为 part-00000part-00001 等。每个RDD分区都写入一个part-文件。因此,输出文件的数量将取决于要写出的RDD中的分区。

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

插图

通过查询 Hive 表生成数据帧

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

获取 RDD 分区数

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

将数据帧保存到 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

最新更新