1

我正在查询表,但我使用两种方式得到不同的结果,我想了解原因。

我使用 Delta 位置创建了一个表。我想查询存储在该位置的数据。我正在使用亚马逊 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。

我目前的结果是:

在此处输入图像描述

我想以两种方式获得相同的结果。

4

1 回答 1

1

您返回的 1 实际上是行数 - 而不是实际结果。将sql语句更改为:

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

您现在应该得到相同的结果。

于 2019-06-09T12:32:01.523 回答