问题:我想使用以下命令将数据从 S3 导入 Spark EMR:
data = sqlContext.read.json("s3n://.....")
有没有办法可以设置 Spark 用来加载和处理数据的节点数?这是我如何处理数据的示例:
data.registerTempTable("table")
SqlData = sqlContext.sql("SELECT * FROM table")
上下文:数据不是太大,需要很长时间才能加载到 Spark 中并从中查询。我认为 Spark 将数据划分为太多节点。我希望能够手动设置。我知道在处理 RDD 时,sc.parallelize
我可以将分区数作为输入传递。另外,我见过repartition()
,但我不确定它是否能解决我的问题。在我的示例中,变量data
是 a 。DataFrame
让我更准确地定义分区。定义一:通常称为“分区键”,其中选择并索引列以加快查询速度(这不是我想要的)。定义二:(这是我关心的地方)假设你有一个数据集,Spark 决定将它分布在许多节点上,以便它可以并行地对数据运行操作。如果数据大小太小,这可能会进一步减慢该过程。我如何设置该值