当Spark使用Hadoop编写器编写部分文件(使用saveAsTextFile())时,这是一般格式" part-NNNNN"它将文件保存在。如何检索此后缀" NNNNN"在运行时的Spark?
聚苯乙烯。我不想列出文件,然后检索后缀。
答案 0 :(得分:1)
文件名为part-00000
,part-00001
,依此类推。每个RDD
分区都写入一个part-
文件。因此,输出文件的数量将取决于正在写出的RDD
中的分区。
您可以检查正在为分区数量编写的RDD(例如5),然后访问文件part-00000
到part-00004
。
<强>插图强>
通过查询Hive表
来构建DataFramescala> 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