Некоторые значения типов данных теряются после написания искры scala - PullRequest
0 голосов
/ 08 января 2019

Я новичок в искре.

У меня есть датафрейм, как показано ниже. Это пример кадра данных, ID имеет 32 символа, и я приведу его тип к целому числу.

ID,                             Transaction_amount,    Year
11111111111111111111111111111111,   1000,              2016
22222222222222222222222222222222,   2000,              2017
11111111111111111111111111111111,   1000,              2018
33333333333333333333333333333333,   3000,              2018

Я хотел разделить фрейм данных по идентификатору и записать каждый раздел в файл csv. Поэтому я пишу следующий код.

 df
  .write
  .partitionBy("ID")
  .csv("/path")

Он дал мне выходной CSV-файл, как показано ниже (когда ID = 11111111111111111111111111111111).

1000,2016
1000,2018

Как видите, значение ID отсутствует в файле. Итак, я обновляю свой код, как показано ниже.

     df
      .withColumn("ID_", $"ID")
      .write
      .partitionBy("ID_")
      .csv("/path")

Это дало мне следующий результат.

,1000,2016
,1000,2018

Как видите, значение ID отсутствует.

Мой ожидаемый выходной CSV-файл должен быть таким, как показано ниже (когда ID = 11111111111111111111111111111111).

11111111111111111111111111111111,1000,2016
11111111111111111111111111111111,1000,2018

Как новичок, я думаю, что-то с типом ID. Потому что, когда я меняю тип данных ID на String, он выдает результат, подобный описанному выше, но разбиение не работает так, как я хотел. Когда я проверял CSV-файл, это был набор всех идентификаторов.

Может кто-нибудь помочь с моим кодом. Спасибо :) 1025 *

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