PySpark - 遍历每一行数据帧并运行配置单元查询
Posted
技术标签:
【中文标题】PySpark - 遍历每一行数据帧并运行配置单元查询【英文标题】:PySpark - loop through each row of dataframe and run a hive query 【发布时间】:2017-09-18 17:46:38 【问题描述】:我有一个包含 100 行 [姓名、年龄、日期、小时] 的数据框。我需要用不同的日期值对这个数据框进行分区。假设这 100 行中有 20 个不同的日期值,那么我需要生成 20 个并行配置单元查询,其中每个配置单元 QL 将使用配置单元表连接每个分区。 Hive 表 - [dept, couse, date] 按日期字段分区。
Hive 表很大,因此我需要将这些连接优化为多个较小的连接,然后汇总这些结果。关于如何实现这一目标的任何建议?
【问题讨论】:
您能否提供具有预期输出的示例数据?您应该考虑只进行一次连接并广播您的 100 行数据帧 【参考方案1】:您可以在单个查询中执行此操作。在日期和加入时对 df 进行分区。在加入广播期间,您的第一个表具有小数据(~10MB)。这是示例:-
df3 = df1.repartition("date").join(
F.broadcast(df2.repartition("date")),
"date"
)
#df2 is your dataframe smaller dataframe in your case it is name, age, date, ,hour.
#Now perform any operation on df3
【讨论】:
以上是关于PySpark - 遍历每一行数据帧并运行配置单元查询的主要内容,如果未能解决你的问题,请参考以下文章
通过 pyspark 数据框创建配置单元管理的分区表并为每个运行附加数据