当Spark使用Hadoop编写器编写部件文件(使用saveAsTextFile())时,这是一般格式"part-NNNNN“,它将文件保存在其中。如何在运行时检索星火中的这个后缀"NNNNN“?
Ps。我不想列出文件,然后检索后缀。
发布于 2018-05-01 09:01:28
这些文件名为part-00000、part-00001等。每个RDD分区都被写入一个part-文件。因此,输出文件的数量将取决于正在写入的RDD中的分区。
您可以检查正在写入的RDD的分区数(例如5个),然后将part-00000文件访问到part-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-00010https://stackoverflow.com/questions/50108469
复制相似问题