Как записать каждую строку кадра данных в разные таблицы Hive (используя Scala)? - PullRequest
0 голосов
/ 06 октября 2018

У меня есть кадр данных искры, как показано ниже.Первый столбец содержит содержимое текстового файла Party (читайте с помощью sc.wholeTextfile).Вторая строка содержит содержимое текстового файла идентификатора.Теперь мне нужно пройтись по каждой строке приведенного ниже фрейма данных и записать в разные таблицы кустов.Первая строка должна быть записана в таблицу Party, вторая строка должна быть записана в таблицу Identifier и т. Д.

Когда я перебираю этот фрейм данных, используя dataframe.foreaach, я не могу использовать сеанс spark, так как сеанс sparkне сериализуемый.

+--------------------+--------------+
|             content|         TblNm|
+--------------------+--------------+
|DSP_ID|DSP_PARTY_...|         Party|
|DSP_ID|DSP_Party_...|    Identifier|
|DSP_ID|DSP_Party_...| Communication|
|DSP_ID|DSP_Party_...|    Individual|
|DSP_ID|DSP_Party_...|      Language|
|DSP_ID|DSP_Party_...|          Name|
|DSP_ID|DSP_Party_...| Certification|
|DSP_ID|DSP_Party_...|Classification|
|DSP_Id|DSP_Party_...|  Organization|
|DSP_ID|DSP_Party_...|       Address|
|DSP_Id|DSP_Party_...|     Specialty|
|DSP_ID|Parent_DSP...|  Relationship|
|DSP_ID|DSP_Party_...|          Role|
+--------------------+--------------+

1 Ответ

0 голосов
/ 06 октября 2018

кэшируйте фрейм данных и используйте N операторов df.write ... - с фильтрами.

И действительно, сериализуемость означает, что Spark не работает таким образом, как вы заметили для таблиц, использующих сеанс spark для Hadoop, для jdbc дляmysql и т. д. вы можете использовать foreach и т. д., но не через df.write.

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