Spark считал из представления Teradata, в котором есть столбец с заголовком - PullRequest
0 голосов
/ 06 февраля 2020

Я хочу попробовать прочитать из Teradata с помощью Spark.

У меня есть представление Teradata из одной таблицы, в которой есть столбец (order_id) с названием столбца ("ORDER ID").

Поэтому при использовании искры выдается следующая ошибка:

Причина: java. sql .SQLException: [База данных Teradata] [TeraJDB ​​C 16.20.00.08] [Ошибка 5628] [SQLState HY000 ] Столбец ID заказа не найден в ST.

 val Query  = "(select order_id from table sample 100) ST ";

 var reader = sparkSession.read
      .format("jdbc")
      .option("url", "jdbc:teradata://xx/charset=xx, DBS_PORT=xx, TMODE=TERA, user=xx, password=xx")
      .option("dbtable", Query);

    reader.load().show(100);

1 Ответ

0 голосов
/ 06 февраля 2020

Если я не ошибаюсь, заголовок - это просто способ изменить отображаемое имя столбца при возврате результатов. В вашем запросе вам все равно нужно указать фактическое имя столбца или псевдоним.

При этом, если "ORDER ID" на самом деле является псевдонимом для столбца order_id, то вы просто ссылаетесь на него в запросе с двойными кавычками: select "ORDER ID" from table sample 100

Просто сделайте убедитесь, что вы правильно экранировали кавычки при установке переменной Query.

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