【发布时间】:2021-03-10 22:46:07
【问题描述】:
在使用 PySpark 的 Azure Databricks 中,我正在从目录中读取文件名。我可以打印我需要的行:
df_ls = dbutils.fs.ls('/mypath/')
for row in df_ls:
filename = row.name.lower()
if 'mytext' in filename:
print(filename)
输出,例如:
mycompany_mytext_2020-12-22_11-34-46.txt
mycompany_mytext_2021-02-01_10-40-57.txt
我想将这些行放入数据框中,但无法使其工作。我的一些失败尝试包括:
df_ls = dbutils.fs.ls('/mypath/')
for row in df_ls:
filename = row.name.lower()
if 'mytext' in filename:
print(filename)
# file_list = row[filename].collect() #tuple indices must be integers or slices, not str
# file_list = filename # last row
# file_list = filename.collect() # error
# file_list = spark.sparkContext.parallelize(list(filename)).collect() # breaks last row into list of each character
# col = 'fname' # this and below generates ParseException
# df = spark.createDataFrame(data = file_list, schema = col)
问题是,如何将行输出收集到单个数据框列中,每个值一行?
【问题讨论】:
标签: pyspark