我在hdfs的hdfs目录中有多个csv文件:
/project/project_csv/file1.csv
/project/project_csv/file2.csv
/project/project_csv/file3.csv
现在,在我的pyspark程序中,我想基于文件数量遍历路径,并且每次都想将数据存储到数据帧中并将数据加载到特定表中。
Like:
With the first file1.csv read to df and save to table1:
df = spark.read(file1.csv)
df.write.mode('overwrite').format('hive').saveAsTable(data_base.table_name1)
With the second file2.csv read to df and save to table2:
df = spark.read(file2.csv)
df.write.mode('overwrite').format('hive').saveAsTable(data_base.table_name2)
以同样的方式,要遍历多个文件并将数据保存到不同的表中。
答案 0 :(得分:0)
您可以使用 glob()
遍历特定文件夹中的所有文件,并使用条件来执行以下特定于文件的操作。
* in order to loop through all the files/folder
.csv only to consider all csv files in that folder
import glob
files = glob.glob(r"C:\Users\path\*.csv")
for i in files:
if i.endswith("file1.csv"):
df = spark.read(file1.csv)
df.write.mode('overwrite').format('hive').saveAsTable(data_base.table_name1)
答案 1 :(得分:0)
我想您想问的是如何在Python的HDFS目录中列出文件。您可以使用HdfsCLI软件包:
from hdfs import Config
client = Config().get_client('dev')
files = client.list('/path')