
python spark 纵向合并多个Datafame
最近在学习spark 哎,但是发现很多功能都没有pandas好用,很多功能都不具备(也可能是我还没学到那),记录一个纵向合并的问题。spark:(我写的很笨的办法)可能有更简单的方法我没有找到。
·
最近在学习spark 哎,但是发现很多功能都没有pandas好用,很多功能都不具备(也可能是我还没学到那),记录一个纵向合并的问题
pandas合并多个df:
j简单写一下
import pandas as pd
data_list = []
df1
df2
df3...
data_list.append(df1...)
#data_list: [df1, df2, df3, df4....]
df_result = pd.concat(data_list)
spark:(我写的很笨的办法)
from pyspark.sql import SparkSession
spark = SparkSession.builder.getOrCreate()
df_list = []
d = [{'name': 'Alice', 'age': 21}]
df1 = spark.createDataFrame(d)
df1.show()
df_list.append(df1)
d = [{'name': 'Bob', 'age': 12}]
df2 = spark.createDataFrame(d)
df2.show()
df_list.append(df2)
d = [{'name': 'mary', 'age': 11}]
df3 = spark.createDataFrame(d)
df3.show()
df_list.append(df3)
for i, df in enumerate(df_list):
if i == 0:
trip_df = df
else:
trip_df = trip_df.union(df)
trip_df.show()
结果:
可能有更简单的方法我没有找到
找到新办法啦!
from functools import reduce
from pyspark.sql import DataFrame
def unionAll(*dfs):
return reduce(DataFrame.unionAll, dfs)
df_list= [df, df1, df2...]
df = unionAll(*df_list)
更多推荐
所有评论(0)