考虑的方法(Spark 2.2.1):
DataFrame.repartition(带partitionExprs: Column*参数的两个实现)DataFrameWriter.partitionBy从文档的partitionBy:
如果指定,输出奠定了类似文件系统
Hive的分区方案.例如,当我们Dataset按年和月分区时,目录布局如下所示:
- 年= 2016 /月= 01 /
- 年= 2016 /月= 02 /
由此,我推断列参数的顺序将决定目录布局; 因此它是相关的.
从文档的repartition:
返回
Dataset由给定分区表达式分区的新分区,使用spark.sql.shuffle.partitions分区数.结果Dataset是散列分区.
根据我目前的理解,repartition决定处理时的并行度DataFrame.有了这个定义,行为repartition(numPartitions: Int)很简单,但是对于参数的另外两个实现也是repartition如此partitionExprs: Column*.
所有事情都说,我的疑虑如下:
partitionBy方法一样,列输入的顺序也 …我正在使用 Java 在 Spark 中运行以下代码。
代码
测试.java
package com.sample;
import org.apache.spark.SparkConf;
import org.apache.spark.SparkContext;
import org.apache.spark.sql.Dataset;
import org.apache.spark.sql.Row;
import org.apache.spark.sql.SparkSession;
import org.apache.spark.sql.functions;
import org.apache.spark.storage.StorageLevel;
import com.addition.AddTwoNumbers;
public class Test{
private static final String APP_NAME = "Test";
private static final String LOCAL = "local";
private static final String MASTER_IP = "spark://10.180.181.26:7077";
public static void main(String[] args) {
SparkConf conf = new SparkConf().setAppName(APP_NAME).setMaster(MASTER_IP);
String connection = "jdbc:oracle:thin:test/test@//xyz00aie.in.oracle.com:1521/PDX2600N";
// Create Spark Context
SparkContext context = new SparkContext(conf);
// Create Spark Session
SparkSession sparkSession = …Run Code Online (Sandbox Code Playgroud)