【问题标题】:Spark-SQl DataFrame partitionsSpark-SQL DataFrame 分区
【发布时间】:2016-03-06 14:22:41
【问题描述】:

我需要使用 spark-sql 加载 Hive 表,然后在其上运行一些机器学习算法。我是这样写的:

val dataSet = sqlContext.sql(" select * from table")

效果很好,但是如果我想增加 dataSet Dataframe 的部分数量,我该怎么做? 使用普通的 RDD 我可以写:

val dataSet = sc.textFile(" .... ", N )

我想拥有 N 个分区。

谢谢

【问题讨论】:

    标签: apache-spark apache-spark-sql hadoop-partitioning


    【解决方案1】:

    您可以coalescerepartition 生成DataFrame,即:

    val dataSet = sqlContext.sql(" select * from table").coalesce(N)
    

    【讨论】:

    • 这是相当昂贵的操作,对吧?无论如何,应该通过加快训练步骤来减少合并开销。谢谢
    • 是的。它涉及在集群的节点之间传输所有数据。另一种选择可能是尝试设置spark.default.parallelism配置属性,但你必须尝试,我不知道它是否有效...
    猜你喜欢
    • 1970-01-01
    • 2018-01-19
    • 2017-01-15
    • 1970-01-01
    • 2019-03-02
    • 1970-01-01
    • 2019-02-07
    • 2019-11-05
    • 1970-01-01
    相关资源
    最近更新 更多