Spark Java分区

时间:2019-08-01 18:06:04

标签: java apache-spark

Java spark2
这两个语句有什么区别

Dataset<Row> Data; 


Data.repartition(new Column("key" )) ; 

and 

Data.repartition(Data.col("key" ) ;

1 个答案:

答案 0 :(得分:0)

Data.repartition(new Column("key"));

等效于

import static org.apache.spark.sql.functions.col;
Data.repartition(col("key"));

在这些情况下,该列不直接与数据集相关联,因此Spark需要during the Analysis phase对其进行解析。

如果您改用

Data.repartition(Data.col("key");

您正在向Spark发出指令,该指令是列所属的数据集。 此方法主要用于连接(例如,两个具有相同列名的数据集)的联接中。

在您的示例中,结果是相同的,您可以使用两种形式。