分享

sparksql 可以修改map数吗

ananan36 发表于 2015-12-9 10:19:27 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 7 21674
sparksql 可以修改map数吗

已有(7)人评论

跳转到指定楼层
easthome001 发表于 2015-12-9 13:01:17
没遇到过,楼主为啥想修改map数目了。这个应该由spark sql内部机制决定吧。可以对spark sql优化
回复

使用道具 举报

regan 发表于 2015-12-9 13:03:40
楼主能够描述详细一点吗?Spark map数?没怎么理解楼主表达的意思。我猜想,楼主是在使用的时候,在操作RDD,使用RDD的transaction操作map方法的时候吧,在spark中每一个RDD是只读的(read only),想要产生新的RDD的话可以通过transaction操作。比如:
// adding a new column and dropping an existing columnval df2 = sc.makeRDD(6 to 10).map(i => (i, i * 3)).toDF("single", "triple")
上面代码中,sc.makeRDD通过集合产生RDD。通过map从第一个RDD得到MappedRDD.最后调用SparkSQL API的toDF方法产生DataFrame....
回复

使用道具 举报

ananan36 发表于 2015-12-9 14:21:41
easthome001 发表于 2015-12-9 13:01
没遇到过,楼主为啥想修改map数目了。这个应该由spark sql内部机制决定吧。可以对spark sql优化

task 分区数量,这个怎么增加
回复

使用道具 举报

regan 发表于 2015-12-9 17:09:36
本帖最后由 regan 于 2015-12-9 17:15 编辑
ananan36 发表于 2015-12-9 14:21
task 分区数量,这个怎么增加

RDD上有分区的API,RDD上有一个方法叫repartition(n),参数n是分区数.如:
val count = spark.parallelize(1 until n, slices).map { i =>
    val x = random * 2 - 1
    val y = random * 2 - 1
    if (x*x + y*y < 1) 1 else 0
  }.repartition(4)
重新分区为4
回复

使用道具 举报

zeno_wgs 发表于 2015-12-10 11:16:15
sparksql在运行的时候可以设置一些参数来限制task数量,SET spark.sql.map.partitions=20;SET spark.sql.shuffle.partitions=20;SET spark.sql.reduce.partitions=20;这些参数都是可以的
回复

使用道具 举报

ledasion 发表于 2017-2-4 16:00:01
借问一下 Spark SQL 与 hive on spark 有什么区别
回复

使用道具 举报

s060403072 发表于 2018-8-13 12:20:19
ledasion 发表于 2017-2-4 16:00
借问一下 Spark SQL 与 hive on spark 有什么区别

spark sql是使用的spark自己的引擎
hive on spark 是hive借用spark的引擎。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条