相关疑难解决方法(0)

如何在Spark SQL中控制分区大小

我需要使用Spark SQL从Hive表加载数据HiveContext并加载到HDFS中.默认情况下,DataFramefrom SQL输出有2个分区.为了获得更多的并行性,我需要更多的SQL分区.HiveContext中没有重载方法来获取分区数参数.

RDD的重新分区导致改组并导致更多的处理时间.

>

val result = sqlContext.sql("select * from bt_st_ent")
Run Code Online (Sandbox Code Playgroud)

有日志输出:

Starting task 0.0 in stage 131.0 (TID 297, aster1.com, partition 0,NODE_LOCAL, 2203 bytes)
Starting task 1.0 in stage 131.0 (TID 298, aster1.com, partition 1,NODE_LOCAL, 2204 bytes)
Run Code Online (Sandbox Code Playgroud)

我想知道有没有办法增加SQL输出的分区大小.

hive partitioning apache-spark apache-spark-sql

22
推荐指数
2
解决办法
9042
查看次数

为什么SparkContext.textFile的分区参数不生效?

scala> val p=sc.textFile("file:///c:/_home/so-posts.xml", 8) //i've 8 cores
p: org.apache.spark.rdd.RDD[String] = MapPartitionsRDD[56] at textFile at <console>:21

scala> p.partitions.size
res33: Int = 729
Run Code Online (Sandbox Code Playgroud)

我希望打印8个,我在Spark UI中看到729个任务

编辑:

打完电话后repartition(),通过@ zero323建议

scala> p1 = p.repartition(8)
scala> p1.partitions.size
res60: Int = 8
scala> p1.count
Run Code Online (Sandbox Code Playgroud)

我仍然在Spark UI中看到729个任务,即使spark-shell打印8个.

scala apache-spark rdd

5
推荐指数
2
解决办法
4869
查看次数

标签 统计

apache-spark ×2

apache-spark-sql ×1

hive ×1

partitioning ×1

rdd ×1

scala ×1