所以我想从目录中读取 csv 文件,作为 pyspark 数据帧,然后将它们附加到单个数据帧中。
没有在 pyspark 中获得替代方案,就像我们在 Pandas 中所做的那样。
例如在 Pandas 中,我们这样做:
files=glob.glob(path +'*.csv')
df=pd.DataFrame()
for f in files:
dff=pd.read_csv(f,delimiter=',')
df.append(dff)
在 Pyspark 我试过这个但没有成功
schema=StructType([])
union_df = sqlContext.createDataFrame(sc.emptyRDD(),schema)
for f in files:
dff = sqlContext.read.load(f,format='com.databricks.spark.csv',header='true',inferSchema='true',delimiter=',')
df=df.union_All(dff)
真的很感激任何帮助。
谢谢
最佳答案
在 spark 2.1 中完成此操作的一种方法如下:
files=glob.glob(path +'*.csv')
for idx,f in enumerate(files):
if idx == 0:
df = spark.read.csv(f,header=True,inferSchema=True)
dff = df
else:
df = spark.read.csv(f,header=True,inferSchema=True)
dff=dff.unionAll(df)
关于pyspark - 如何在 Pyspark 中定义一个空数据框并附加相应的数据框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43316716/