我正在尝试从特定目录中获取所有.xlsx文件到一个PySpark数据帧。
- 所有.xlsx文件的模式是相同的
我想到的:
directory = os.listdir('/Users/UserName/Documents/excel/')
pattern = '(.*.xlsx)'
for file in directory:
if re.match(pattern, file): # get only .xlsx files
pdf1 = pandas.read_excel(file, sheet_name='Analog Voltage Input') #pandas data frame
pdf2 = pandas.read_excel(next(file), sheet_name='Analog Voltage Input')
sdf1 = spark.createDataFrame(pdf1) #spark data frame
sdf2 = spark.createDataFrame(pdf2)
msdf = sdf1.union(sdf2) #merged spark data frame
我知道循环中的部分不工作有几个原因,但我希望你能明白。
我正在寻找一个函数,如:
msdf.append(spark.createDataFrame(file))
@Felix Bartschi,pyspark(和scala)支持将csv文件直接读取到spark数据框架中。你可以像
df = spark.read.csv('root/folder1/folder2') # folder 2 will contain all your files
参考下面的文档了解完整用法:
https://spark.apache.org/docs/2.4.0/api/python/pyspark.sql.html?highlight=csv pyspark.sql.DataFrameReader.csv
注意:请务必检查您正在使用的spark版本的文档