Ошибка компиляции при разделении одного столбца на несколько столбцов - PullRequest
0 голосов
/ 02 января 2019

При разбиении одного столбца в dataFrame на 2 столбца с использованием приведенного ниже кода, я пробовал использовать два типа кода, но оба раза я получал ошибку при запуске программы. На экране IteliJ ошибка не отображается (означает отсутствие красной метки) но во время работы это показывает ошибку на консоли. мой фрейм данных: + --------- + | Wrap Time | + --------- + | 19,674 | | 11,466 | | 263,697 |

код: 1

val df2=  df.withColumn("nested", split(col("Wrap Time"), "."))
      .withColumn("Call Completion Code_1", $"nested".getItem(0))
      .withColumn("Call Completion Code_2", $"nested".getItem(1))
      .withColumn("Call Completion Code_3", $"nested".getItem(2))
      .drop("nested")

Ошибка: (26, 43) не удалось найти неявное значение для параметра impl: breeze.linalg.split.Impl2 [org.apache.spark.sql.Column, String, VR] val df2 = df.withColumn ("nested", split (col ("Wrap Time"), "."))

Ошибка: (26, 43) недостаточно аргументов для применения метода: (неявный impl: breeze.linalg.split.Impl2 [org.apache.spark.sql.Column, String, VR]) VR в признаке UFunc. Не указано значение параметра вкл. val df2 = df.withColumn ("nested", split (col ("Wrap Time"), "."))

код: 2:

val df2= df.
      withColumn("nested", split($"Wrap Time", ".")).select($"nested"(0) as "Call Completion Code_1", $"nested"(1) as "Call Completion Code_2")

Ошибка: (23, 33) не удалось найти неявное значение для параметра impl: breeze.linalg.split.Impl2 [org.apache.spark.sql.ColumnName, String, VR] withColumn ("nested", split ($ "Time Wrap Time", ".")). select ($ "nested" (0) как "Код завершения вызова_1", $ "nested" (1) как "Код завершения вызова_2")

Ошибка: (23, 33) недостаточно аргументов для применения метода: (неявный impl: breeze.linalg.split.Impl2 [org.apache.spark.sql.ColumnName, String, VR]) VR с чертой UFunc. Не указано значение параметра вкл. withColumn ("nested", split ($ "Time Wrap Time", ".")). select ($ "nested" (0) как "Код завершения вызова_1", $ "nested" (1) как "Код завершения вызова_2")

версия исполнения spark: spark-2.3.2
Скала 2.11.8
jdk1.8.0_20 SBT-1.2.7

1 Ответ

0 голосов
/ 03 января 2019

Можете ли вы попробовать код ниже.Это должно работать.

val df2 = df.withColumn ("_ tmp", split ($ "WRAP", "\\.")) .Select ($ "_ tmp" .getItem (0) .as ("col1"), $ "_ tmp" .getItem (1) .as ("col2"))

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