如何从配置单元中的第n个存储桶中获取所有记录。
从桶9的bucketTable中选择*;
您可以使用不同的方法来实现:
Approach-1:通过从
stored location
]中获取表desc formatted <db>.<tab_name>
然后直接从
9th bucket
读取HDFS filesystem
文件。(或)
使用input_file_name()Approach-2:
然后仅使用文件名过滤
9th bucket
数据
Example:
Approach-1:
val df=spark.sql("desc formatted <db>.<tab_name>") //get table location in hdfs path val loc_hdfs= df.filter('col_name === "Location").select("data_type").collect.map(x => x(0)).mkString //based on your table format change the read format val ninth_buk= spark.read.orc(s"${loc_hdfs}/000008_0") //display the data ninth_buk.show()
Approach-2:
val df=spark.read.table("<db>.<tab_name>") //add input_file_name val df1=df.withColumn("filename",input_file_name()) #filter only the 9th bucket filename and select only required columns val ninth_buk= df1.filter('filename.contains("000008_0")).select(df.columns.head,df.columns.tail:_*) ninth_buk.show()
Method-2
如果您有大量数据,我们不建议使用此方法,因为我们需要筛选整个数据帧。