Databricks sử dụng SQL trong sổ ghi chép Python

Ngoài việc tạo bảng, Spark có thể tạo chế độ xem trên đầu bảng hiện có. Chế độ xem có thể là toàn cầu [hiển thị trên tất cả các SparkSession trên một cụm nhất định] hoặc theo phạm vi phiên [chỉ hiển thị cho một SparkSession duy nhất] và chúng là tạm thời. chúng biến mất sau khi ứng dụng Spark của bạn kết thúc

Tạo dạng xem có cú pháp tương tự như tạo bảng trong cơ sở dữ liệu. Khi bạn tạo một dạng xem, bạn có thể truy vấn nó giống như một bảng. Sự khác biệt giữa dạng xem và bảng là dạng xem không thực sự chứa dữ liệu;

Bạn có thể tạo dạng xem từ bảng hiện có bằng SQL. Ví dụ: nếu bạn chỉ muốn làm việc trên tập hợp con của tập hợp dữ liệu về sự chậm trễ chuyến bay của Hoa Kỳ với các sân bay gốc của New York [JFK] và San Francisco [SFO], thì các truy vấn sau đây sẽ tạo ra các chế độ xem tạm thời và tạm thời trên toàn cầu chỉ bao gồm lát cắt đó

-- In SQL
CREATE OR REPLACE GLOBAL TEMP VIEW us_origin_airport_SFO_global_tmp_view AS
  SELECT date, delay, origin, destination from us_delay_flights_tbl WHERE 
  origin = 'SFO';

CREATE OR REPLACE TEMP VIEW us_origin_airport_JFK_tmp_view AS
  SELECT date, delay, origin, destination from us_delay_flights_tbl WHERE 
  origin = 'JFK'

Bạn có thể thực hiện điều tương tự với API DataFrame như sau

# In Python
df_sfo = spark.sql["SELECT date, delay, origin, destination FROM 
  us_delay_flights_tbl WHERE origin = 'SFO'"]
df_jfk = spark.sql["SELECT date, delay, origin, destination FROM 
  us_delay_flights_tbl WHERE origin = 'JFK'"]

# Create a temporary and global temporary view
df_sfo.createOrReplaceGlobalTempView["us_origin_airport_SFO_global_tmp_view"]
df_jfk.createOrReplaceTempView["us_origin_airport_JFK_tmp_view"]

Khi bạn đã tạo các dạng xem này, bạn có thể đưa ra các truy vấn đối với chúng giống như đối với một bảng. Hãy nhớ rằng khi truy cập chế độ xem tạm thời toàn cầu, bạn phải sử dụng tiền tố

# In Python
df_sfo = spark.sql["SELECT date, delay, origin, destination FROM 
  us_delay_flights_tbl WHERE origin = 'SFO'"]
df_jfk = spark.sql["SELECT date, delay, origin, destination FROM 
  us_delay_flights_tbl WHERE origin = 'JFK'"]

# Create a temporary and global temporary view
df_sfo.createOrReplaceGlobalTempView["us_origin_airport_SFO_global_tmp_view"]
df_jfk.createOrReplaceTempView["us_origin_airport_JFK_tmp_view"]
1, vì Spark tạo chế độ xem tạm thời toàn cầu trong cơ sở dữ liệu tạm thời toàn cầu có tên là
# In Python
df_sfo = spark.sql["SELECT date, delay, origin, destination FROM 
  us_delay_flights_tbl WHERE origin = 'SFO'"]
df_jfk = spark.sql["SELECT date, delay, origin, destination FROM 
  us_delay_flights_tbl WHERE origin = 'JFK'"]

# Create a temporary and global temporary view
df_sfo.createOrReplaceGlobalTempView["us_origin_airport_SFO_global_tmp_view"]
df_jfk.createOrReplaceTempView["us_origin_airport_JFK_tmp_view"]
0. Ví dụ

-- In SQL 
SELECT * FROM global_temp.us_origin_airport_SFO_global_tmp_view

Ngược lại, bạn có thể truy cập chế độ xem tạm thời bình thường mà không cần tiền tố

# In Python
df_sfo = spark.sql["SELECT date, delay, origin, destination FROM 
  us_delay_flights_tbl WHERE origin = 'SFO'"]
df_jfk = spark.sql["SELECT date, delay, origin, destination FROM 
  us_delay_flights_tbl WHERE origin = 'JFK'"]

# Create a temporary and global temporary view
df_sfo.createOrReplaceGlobalTempView["us_origin_airport_SFO_global_tmp_view"]
df_jfk.createOrReplaceTempView["us_origin_airport_JFK_tmp_view"]
0

-- In SQL 
SELECT * FROM us_origin_airport_JFK_tmp_view
// In Scala/Python
spark.read.table["us_origin_airport_JFK_tmp_view"]
// Or
spark.sql["SELECT * FROM us_origin_airport_JFK_tmp_view"]

Bạn cũng có thể thả một khung nhìn giống như bạn làm với một bảng

-- In SQL
DROP VIEW IF EXISTS us_origin_airport_SFO_global_tmp_view;
DROP VIEW IF EXISTS us_origin_airport_JFK_tmp_view
// In Scala/Python
spark.catalog.dropGlobalTempView["us_origin_airport_SFO_global_tmp_view"]
spark.catalog.dropTempView["us_origin_airport_JFK_tmp_view"]

Chế độ xem tạm thời so với chế độ xem tạm thời toàn cầu

Sự khác biệt giữa chế độ xem tạm thời và chế độ xem tạm thời toàn cầu là rất nhỏ, nó có thể là nguyên nhân gây nhầm lẫn nhẹ giữa các nhà phát triển mới sử dụng Spark. Chế độ xem tạm thời được gắn với một SparkSession duy nhất trong ứng dụng Spark. Ngược lại, chế độ xem tạm thời toàn cầu hiển thị trên nhiều SparkSession trong ứng dụng Spark. Có, bạn có thể tạo nhiều SparkSession trong một ứng dụng Spark duy nhất—điều này có thể hữu ích, chẳng hạn như trong trường hợp bạn muốn truy cập [và kết hợp] dữ liệu từ hai SparkSession khác nhau không chia sẻ cùng cấu hình kho lưu trữ Hive

Làm cách nào để sử dụng SQL trong sổ ghi chép Python Databricks?

Bắt đầu .
Thu thập thông tin sau cho cụm hoặc kho SQL mà bạn muốn sử dụng. cụm. Tên máy chủ của cụm. .
Cài đặt thư viện Databricks SQL Connector cho Python trên máy phát triển của bạn bằng cách chạy pip install databricks-sql-connector

Chúng ta có thể sử dụng truy vấn SQL trong Python không?

Một cách nhanh chóng và dễ dàng để có thể chạy các truy vấn SQL bằng Python là sử dụng SQLite . SQLite là một thư viện sử dụng công cụ cơ sở dữ liệu SQL. Nó hoạt động tương đối nhanh và đã được chứng minh là có độ tin cậy cao. SQLite là công cụ cơ sở dữ liệu được sử dụng phổ biến nhất trong môi trường thử nghiệm.

Làm cách nào để kết nối với cơ sở dữ liệu SQL từ Databricks?

Phương pháp 1. Sử dụng Mã tùy chỉnh để kết nối Databricks với SQL Server .
Bước 1. Tạo cơ sở dữ liệu SQL mới
Bước 2. Tải tệp mong muốn lên Databricks Cluster
Bước 3. Tải dữ liệu
Bước 4. Tạo URL và thuộc tính JDBC
Bước 5. Kiểm tra Kết nối với cơ sở dữ liệu SQL Server
Bước 6. Đọc & Hiển thị dữ liệu

Làm cách nào để sử dụng SQL trong PySpark?

PySpark SQL là một mô-đun trong Spark tích hợp xử lý quan hệ với API lập trình chức năng của Spark. Chúng tôi có thể trích xuất dữ liệu bằng cách sử dụng ngôn ngữ truy vấn SQL. .
từ pyspark. nhập sql *
#Tạo khung dữ liệu
songdf = tia lửa. đọc. .
#Thực hiện truy vấn SQL
songdf. chọn ["Thể loại"]. .
songdf

Chủ Đề