【问题标题】:PySpark - loop through each row of dataframe and run a hive queryPySpark - 遍历每一行数据帧并运行配置单元查询
【发布时间】:2017-09-18 17:46:38
【问题描述】:

我有一个包含 100 行 [姓名、年龄、日期、小时] 的数据框。我需要用不同的日期值对这个数据框进行分区。假设这 100 行中有 20 个不同的日期值,那么我需要生成 20 个并行配置单元查询,其中每个配置单元 QL 将使用配置单元表连接每个分区。 Hive 表 - [dept, couse, date] 按日期字段分区。

Hive 表很大,因此我需要将这些连接优化为多个较小的连接,然后汇总这些结果。关于如何实现这一目标的任何建议?

【问题讨论】:

  • 您能否提供具有预期输出的示例数据?您应该考虑只进行一次连接并广播您的 100 行数据帧

标签: python apache-spark pyspark


【解决方案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  

【讨论】:

    猜你喜欢
    • 2021-05-16
    • 2021-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多