所以我想从目录中读取csv文件,作为pyspark数据帧,然后将它们附加到单个数据帧中 . 在pyspark中没有得到替代品,就像我们在熊猫中所做的那样 .
例如在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)
非常感谢任何帮助 .
谢谢
3 回答
在火花2.1中完成以下操作的一种方法:
在2个数据帧上使用“unionAll”时,架构应该相同 . 因此,空数据帧的模式应该符合csv模式 .
例如:
或者你可以这样做:
首先定义模式,然后您可以使用unionAll将新数据帧连接到空数据帧,甚至运行迭代以将一堆数据帧组合在一起 .