Переход на стол Phoenix в Apache Spark - PullRequest
0 голосов
/ 30 января 2019

Ищет, нашел ли кто-нибудь способ выполнения upserts (добавление / обновление / частичное вставление / обновление) на Phoenix с использованием Apache Spark.Я мог видеть, что согласно документации Phoenix save SaveMode.Overwrite поддерживается только - который перезаписывается при полной загрузке.Я пытался изменить режим, он выдает ошибку.

В настоящее время у нас запущены задания * .hql для выполнения этой операции, теперь мы хотим переписать их в Spark Scala.Спасибо, что поделились своими ценными вкладами.

1 Ответ

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

Хотя разъем Phoenix действительно поддерживает только SaveMode.Overwrite, реализация не соответствует стандарту Spark, , в котором говорится, что :

Режим перезаписи означает, что при сохраненииDataFrame для источника данных, если данные / таблица уже существуют, ожидается, что существующие данные будут перезаписаны содержимым DataFrame

Если вы отметите источник , вы будетевидите, что saveToPhoenix просто вызывает saveAsNewAPIHadoopFile с PhoenixOutputFormat, , что

внутренне создает запрос UPSERT для вас

Другими словамиSaveMode.Overwrite с разъемом Phoenix на самом деле UPSERT.

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