Spark SQL: Tạo Temp View từ DataFrame

Tạo Temp View

Bạn có thể đăng ký bất kỳ DataFrame nào như một bảng hoặc view (một bảng tạm thời) và truy vấn nó bằng cách sử dụng SQL thuần túy với hàm spark.sql (nhớ, spark là biến SparkSession của chúng ta).

pythonSao chép mãfrom pyspark.sql import SparkSession

# Tạo một SparkSession
spark = SparkSession.builder.appName("TempViewExample").getOrCreate()

# Đăng ký DataFrame là một Temp View
df.createOrReplaceTempView("flight_data")

# Truy vấn Temp View bằng SQL
sql_way = spark.sql("""
    SELECT DEST_COUNTRY_NAME, count(1)
    FROM flight_data
    GROUP BY DEST_COUNTRY_NAME
""")

# Truy vấn DataFrame bằng cách sử dụng API DataFrame
df_way = df \
  .groupBy("DEST_COUNTRY_NAME")\
  .count()

Kiểm tra số lượng Temp Views

pythonSao chép mã# Lấy danh sách các Temp Views từ catalog
temp_views_list = spark.catalog.listTables()

# Đếm số lượng Temp Views
num_temp_views = len(temp_views_list)

# In ra danh sách Temp Views và số lượng
print(f"Danh sách {num_temp_views} Temp Views:")
for temp_view in temp_views_list:
    print(temp_view.name)

createOrReplaceTempView và registerTempTable

Cả createOrReplaceTempView và registerTempTable đều được sử dụng để tạo các view tạm thời từ DataFrame, làm cho chúng có sẵn cho các truy vấn SQL. Tuy nhiên, createOrReplaceTempView là phương pháp được khuyến nghị để tạo các view tạm thời trong Apache Spark, cung cấp tính tương thích và chức năng tốt hơn so với registerTempTable đã lỗi thời.