使用带有 Pyspark-SQL 的 Delta 格式的查询表与 Pyspark 之间有什么区别?
What is the difference between queering tables using Delta format with Pyspark-SQL versus Pyspark?
我正在查询 tables 但我使用两种方式得到不同的结果,我想了解原因。
我使用 Delta 位置创建了一个 table。我想查询存储在该位置的数据。我正在使用亚马逊 S3。
我这样创建了 table:
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但是它returns1.
当我以其他方式进行同样的查询时:
spark.read.option("header", True).option("inferSchema", True).format("delta").table("bronze_client_trackingcampaigns.TRACKING_BOUNCES").count()
我得到了结果41832。
我目前的成绩是:
我希望两种方式都得到相同的结果。
您返回的 1 实际上是行数 - 而不是实际结果。将 sql 语句更改为:
df = spark.sql("SELECT COUNT(*) FROM bronze_client_trackingcampaigns.TRACKING_BOUNCES")
df.show()
您现在应该得到相同的结果。
我正在查询 tables 但我使用两种方式得到不同的结果,我想了解原因。
我使用 Delta 位置创建了一个 table。我想查询存储在该位置的数据。我正在使用亚马逊 S3。
我这样创建了 table:
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但是它returns1.
当我以其他方式进行同样的查询时:
spark.read.option("header", True).option("inferSchema", True).format("delta").table("bronze_client_trackingcampaigns.TRACKING_BOUNCES").count()
我得到了结果41832。
我目前的成绩是:
我希望两种方式都得到相同的结果。
您返回的 1 实际上是行数 - 而不是实际结果。将 sql 语句更改为:
df = spark.sql("SELECT COUNT(*) FROM bronze_client_trackingcampaigns.TRACKING_BOUNCES")
df.show()
您现在应该得到相同的结果。