Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark Spark SQl数据帧分区_Apache Spark_Apache Spark Sql_Hadoop Partitioning - Fatal编程技术网

Apache spark Spark SQl数据帧分区

Apache spark Spark SQl数据帧分区,apache-spark,apache-spark-sql,hadoop-partitioning,Apache Spark,Apache Spark Sql,Hadoop Partitioning,我需要使用spark sql加载一个配置单元表,然后在此基础上运行一些机器学习algho。我是这样写的: val dataSet = sqlContext.sql(" select * from table") 它工作得很好,但如果我想增加dataSet Dataframe的分区数,我怎么能做到呢? 使用普通RDD,我可以编写: val dataSet = sc.textFile(" .... ", N ) 有N个我想要的分区 谢谢您可以合并或重新分区生成的数据帧,即: val dataSe

我需要使用spark sql加载一个配置单元表,然后在此基础上运行一些机器学习algho。我是这样写的:

val dataSet = sqlContext.sql(" select * from table")
它工作得很好,但如果我想增加dataSet Dataframe的分区数,我怎么能做到呢? 使用普通RDD,我可以编写:

val dataSet = sc.textFile(" .... ", N )
有N个我想要的分区


谢谢

您可以
合并
重新分区
生成的
数据帧
,即:

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

您可以
合并
重新分区
生成的
数据帧
,即:

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

这是相当昂贵的手术,对吗?无论如何,应该通过加快训练步骤来减少合并开销。谢谢,是的。它涉及在集群的节点之间传输所有数据。另一个选项可能是尝试设置
spark.default.parallelism
configuration属性,但您必须尝试,我不知道它是否有效…您也可以检查此链接这是一个非常昂贵的操作,对吗?无论如何,应该通过加快训练步骤来减少合并开销。谢谢,是的。它涉及在集群的节点之间传输所有数据。另一个选项可能是尝试设置
spark.default.parallelism
配置属性,但您必须尝试,我不知道它是否有效…您也可以检查此链接