私はマシン(5機)のクラスタ上で2つの大きなデータセット(2GBのJSONファイル/ 10.000.000タプルそれぞれ)に参加しようとしているが、私はいつも同じエラーを取得Java。 SparkSQLは、大規模なデータセット
java.lang.OutOfMemoryError: GC overhead limit exceeded
よに参加しますスパークスクリプトは
public static void main(String[] args) throws Exception {
SparkSession spark = SparkSession
.builder()
.appName("Java Spark Translator")
.master("local")
.getOrCreate();
StructType rainSchema = new StructType().add("id","integer").add("altitude","double").add("city_name","string").add("latitude","double").add("longitude","double").add("rainfall","double").add("station_name","string").add("time","timestamp");
Dataset<Row> s1 = spark.read().schema(rainSchema).json("dataset/rainfall.json");
StructType humiditySchema = new StructType().add("id","integer").add("altitude","double").add("city_name","string").add("latitude","double").add("longitude","double").add("humidity","double").add("station_name","string").add("time","timestamp");
Dataset<Row> s2 = spark.read().schema(humiditySchema).json("dataset/humidity.json");
Dataset<Row> j1 = s1.join(s2, s2.col("station_name").equalTo(s1.col("station_name")), "inner");
j1.show();
私は何か間違っていますか?解決策は何でしょうか?
ありがとう
スパーク送信を引数で貼り付けることはできますか? –
'/ home/hadoopuser/spark_test_lf/spark/bin/spark-submit --class" spark.examples.App " - マスタースパーク://:7077ターゲット/ Java_Spark-1.0-SNAPSHOT.jar' –