apache-spark - Spark Sum和计数的性能问题

标签 apache-spark hadoop dataframe apache-spark-sql spark-dataframe

我从 hive 表中提取数据并创建一个数据框。然后进行求和和计数操作。数据大小约为3 TB。


val DF1=hiveContext.sql("""SELECT col1,col2,col3,col4,count(col5) AS col5,
                           sum(col6) AS col6 from (
                                                  SELECT col1, col2, col3, col4, col5, 
                                                  sum(col6) AS col6 from <Dataframe from select fields from Table> 
                                                  group by col1, col2, col3, col4, col5
                                                  ) 
                           group by col1,col2,col3,col4
                        """)

DF1.count

这需要很多时间。您能否建议这种情况下最好的方法?

最佳答案

可能有2种情况

  • 您的Hive配置和硬件使得Hive本身花费大量时间来获取查询
  • 的输出
  • 从节点之间的带宽/或传输速度很慢,因此即使Hive快速执行查询后,由于从Hive到PySpark的数据传输速度较慢,它也需要很多时间
  • 关于apache-spark - Spark Sum和计数的性能问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49524101/

    相关文章:

    python - 两个 Pandas 数据帧之间的交叉引用

    python - 用特定字符串替换/移动值 [pandas]

    python - 如何使用 PySpark 预处理图像?

    scala - 如何将嵌套列添加到 DataFrame

    java - 在 Hadoop 中,框架在哪里保存普通 Map-Reduce 应用程序中 Map 任务的输出?

    hadoop - 如何计算校验和?

    scala - java.lang.ClassNotFoundException : org. apache.spark.sql.Dataset

    apache-spark - Spark 执行器内存减少到 1/2

    scala - 负逻辑实现不适用于spark/scala

    python - 在更新 pandas 中的另一列时合并行