pyspark - 如何在 Pyspark 中定义一个空数据框并附加相应的数据框?

标签 pyspark pyspark-sql

所以我想从目录中读取 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/

相关文章:

python - PySpark DataFrame 中行作为新列的模式

python - 值错误: Length of object (3) does not match with length of fields

apache-spark - Pyspark 轮函数的问题

python - 如何计算pyspark中的日期差异?

hadoop - Apache Spark Ec2 : could only be replicated to 0 nodes, 而不是 1

python - 如何访问 Spark PipelineModel 参数

apache-spark - PySpark无法通过sparkContext/hiveContext读取Hive ORC事务表?我们可以使用Pyspark更新/删除配置单元表数据吗?

python - 如何在pyspark sql中保存一个表?

python - 使用 Python Spark 从 Hadoop 表的 Json 对象中提取所有键

python - partitionBy 分配分区,但每个分区中的 WHERE