Динамически генерировать иск Sql selectExpr оператор для объединения - PullRequest
0 голосов
/ 12 апреля 2019

Я работаю над проектом, в котором мне нужно динамически предоставить несколько имен столбцов из разных источников для угольной промышленности.

e1.csv

id,code,type
1,,A
2,,
3,123,I

e2.csv

id,code,type
1,456,A
2,789,A1
3,,C

код


Dataset<Row> df1 = spark.read().format("csv").option("header", "true").load("C:\\Users\\System2\\Videos\\folder\\e1.csv");

Dataset<Row> df2 = spark.read().format("csv").option("header", "true").load("C:\\Users\\System2\\Videos\\folder\\e2.csv");



Dataset<Row> newDS = df1.as("a").join(df2.as("b")).where("a.id== b.id").selectExpr("coalesce(a.id, b.id) AS `id`;coalesce(a.code, b.code) AS `code`");

Код ошибки, который я получаю

Exception in thread "main" org.apache.spark.sql.catalyst.parser.ParseException: 
mismatched input ';' expecting <EOF>(line 1, pos 38)


Что я пробовал

пробовал с \n, ,, ; но ни один не работает


Dataset<Row> newDS = df1.as("a").join(df2.as("b")).where("a.id== b.id").selectExpr("coalesce(a.id, b.id) AS `id \n coalesce(a.code, b.code) AS `code`");

1 Ответ

0 голосов
/ 12 апреля 2019

Синтаксис неверен.Ваш код будет похож на это:

Dataset<Row> newDS = df1.as("a").join(df2.as("b")).where("a.id== b.id").selectExpr("coalesce(a.id, b.id) AS `id`","coalesce(a.code, b.code) AS `code`");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...