Как разобрать список значений из столбца файла в Spark SQL DataFrame - PullRequest
0 голосов
/ 10 мая 2019

Я все еще новичок в scala, у меня есть требование извлечь первый раздел из каждой таблицы в улье. Я извлек список таблиц в отдельный текстовый файл и создал в виде последовательности, я понятия не имею, как разобрать каждое последовательное значение в «show partitions test_hive_database».

scala> import scala.io.Source
import scala.io.Source

scala> val filename = "text_tables.txt"
filename: String = text_tables.txt

Sample file containing the table list:
TABLE_NAME_A101
TABLE_NAME_A102
TABLE_NAME_A103
TABLE_NAME_B101
TABLE_NAME_C101

scala> val linestable = 
scala.io.Source.fromFile("text_tables.txt").getLines.toSeq
linestable: Seq[String] = Stream(TABLE_NAME_A101, ?)

Ниже приведен пример первого раздела из таблицы, и я соединил таблицу вместе со значением раздела.

scala> sql("show partitions test_hive_database.TABLE_NAME_A101").withColumn("new_column",concat(lit("TABLE_NAME_A101,"),'partition)).select("new_column").show(1,false)

+------------------------------------+
|new_column                          |
+------------------------------------+
|TABLE_NAME_A101,dta_ld_dt=2018-01-23|
+------------------------------------+
only showing top 1 row

Пытался понять

scala> for(e <- linestable) yield (sql("show partitions test_hive_database.$e").withColumn("new_column",concat(lit("$e , "),'partition)).select("new_column").show(1,false))

org.apache.spark.sql.catalyst.parser.ParseException:
extraneous input '$' expecting {'SELECT', 'FROM', 'ADD'

Ожидаемый результат

+------------------------------------+
|new_column                          |
+------------------------------------+
|TABLE_NAME_A101,dta_ld_dt=2018-01-23|
|TABLE_NAME_A102,dta_ld_dt=2018-02-28|
|TABLE_NAME_A103,dta_ld_dt=2018-03-31|
|TABLE_NAME_B101,dta_ld_dt=2018-04-30|
|TABLE_NAME_C101,dta_ld_dt=2019-01-30|
+------------------------------------+

Фактический результат:

Я получаю ошибку, и я не уверен, что этот подход правильный.

Как проанализировать значения из одного столбца из файла в spark sql (имя таблицы) и получить результат, добавленный в CSV-файл?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...