спарк sql concat и операции приведения, приводящие к нулевым значениям для столбца - PullRequest
0 голосов
/ 17 июня 2019

Я выполняю операции concat и cast внутри запроса SQL Spark следующим образом:

spark.sql ("select cast(concat(df_view.col1,"  ") as Long) as new_col from df_view")

Но я получаю null значений в результате DF. Если я просто выполняю операцию приведения или преобразования, я получаю правильные результаты, но с обеими операциями одновременно я получаю значения null.

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

1 Ответ

0 голосов
/ 17 июня 2019

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

Я беру из комментариев, что ваша проблема - это файлы фиксированной ширины, но, как правило, нет смысла конкатировать пустое пространство, а затем пытаться преобразовать результат в число. Вы явно сделали это не числом раньше.

В идеале вы имеете дело с форматом файла как с форматом файла, а не с произвольным манипулированием каждым полем, однако последнее может работать, если вы правильно обрабатываете каждое поле.

...