pandas isin 长期使用速度非常快
pyspark isin 对比速度非常的慢
思路参考文章
https://www.pythonheidong.com/blog/article/400508/6b647ae338b352406ce5/
以下为改进的操作
#leftouter操作
fmqd=pd.read_excel('2022年负面清单.xlsx')
# 字段需要指定,不然会出现报错
fmqd['项目编码']=fmqd['项目编码'].astype(str)
# 字段名相同容易join
fmqd.columns=['ylxmbm']
if __name__ == '__main__':
# 0. 构建执行环境入口对象SparkSession
spark = SparkSession.builder.\
appName("test").\
master("local[*]"). \
config('spark.sql.debug.maxToStringFields', 2000).\
getOrCreate()
sc = spark.sparkContext
spark_fmqd = spark.createDataFrame(fmqd)
df.filter(
(df.qezf != 0)
& (~col("yyxmmc").rlike("躺椅费|陪客费|空调费|停车费|伙食费|床位费"))
).join(spark_fmqd, on='ylxmbm', how='leftouter'). \
select('qezf', 'jshid').groupby('jshid').sum('qezf').repartition(1).write.mode("overwrite"). \
format("csv"). \
option("sep", "^"). \
option("header", True). \
save("G://jsmx//2022test2")