В чем разница между очередями таблиц, использующих формат Delta с Pyspark-SQL, и Pyspark? - PullRequest
1 голос
/ 07 июня 2019

Я запрашиваю таблицы, но у меня разные результаты, используя два способа, я хотел бы понять причину.

Я создал таблицу, используя местоположение Delta.Я хочу запросить данные, которые я сохранил в этом месте.Я использую Amazon S3.

Я создал таблицу следующим образом:

spark.sql("CREATE TABLE bronze_client_trackingcampaigns.TRACKING_BOUNCES (ClientID INT, SendID INT, SubscriberKey STRING) USING DELTA LOCATION 's3://example/bronze/client/trackingcampaigns/TRACKING_BOUNCES/delta'")

Я хочу запросить данные, используя следующую строку:

spark.sql("SELECT count(*) FROM bronze_client_trackingcampaigns.TRACKING_BOUNCES")

Но результаты не в порядке, этодолжно быть 41832, но возвращает 1.

Когда я сделал тот же запрос другим способом:

spark.read.option("header", True).option("inferSchema", True).format("delta").table("bronze_client_trackingcampaigns.TRACKING_BOUNCES").count()

Я получил результат 41832.

Мои текущие результаты:

enter image description here

Я хочу получить одинаковые результаты в обоих направлениях.

1 Ответ

1 голос
/ 09 июня 2019

Возвращаемая вами 1 - это количество строк, а не фактический результат. Измените оператор SQL на:

df = spark.sql("SELECT COUNT(*) FROM bronze_client_trackingcampaigns.TRACKING_BOUNCES")
df.show()

Теперь вы должны получить тот же результат.

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