Hướng dẫn Databricks: 7 Khái niệm Cần Biết (Phần 2)

3 min read

Phần trước chúng ta đã tìm hiểu về Databricks là gì và so sáng Databricks và Jupyter. Trong phần này chúng ta sẽ tìm hiểu thêm về cách nhập dữ liệu vào Databricks cũng như cách chạy SQL trong Databricks

Xem lại phần 1 tại đây

1. Nhập dữ liệu vào Databricks

Nhập dữ liệu (data ingestion) đề cập đến quá trình nhập dữ liệu từ nhiều nguồn khác nhau. Databricks hỗ trợ nhập dữ liệu từ các nguồn đa dạng bao gồm:

  • AWS S3
  • Azure Blob Storage
  • Google Cloud Storage
  • Cơ sở dữ liệu quan hệ (MySQL, PostgreSQL, v.v.)Hồ dữ liệu (Delta Lake, Parquet, Avro, v.v.)
  • Nền tảng streaming (Apache Kafka)
  • Google BigQuery
  • Tập tin CSV cục bộ của bạn
  • Và nhiều hơn nữa

Bây giờ, hãy cùng xem cách bạn có thể tải một số loại dữ liệu vào Databricks. Chúng ta sẽ bắt đầu với các tập tin cục bộ:

databricks

Khi bạn làm theo các bước trong GIF, bạn sẽ có một tập tin được lưu trữ trong workspace. Đây là cách bạn có thể tải nó bằng Spark:

# Importing necessary libraries
from pyspark.sql import SparkSession

# Creating a Spark session
spark = SparkSession.builder.appName("S3ImportExample").getOrCreate()

# Defining the CSV path to the data
path = "dbfs:/FileStore/tables/diamonds.csv"

# Reading data from S3 into a DataFrame
data_from_s3 = spark.read.csv(path, header=True, inferSchema=True)

# Displaying the imported data
data_from_s3.show()

Chú ý đến tiền tố dbfs:. Tất cả các tập tin trong workspace phải bao gồm nó để tập tin được tải chính xác với Spark. DBFS đại diện cho hệ thống tệp Databricks.

Việc nhập dữ liệu từ một bucket S3 cũng tương tự (đối với các tài khoản doanh nghiệp):

# Importing necessary libraries
from pyspark.sql import SparkSession

# Creating a Spark session
spark = SparkSession.builder.appName("S3ImportExample").getOrCreate()

# Defining the S3 path to the data
s3_path = "s3://your-bucket/your-data.csv"

# Reading data from S3 into a DataFrame
data_from_s3 = spark.read.csv(s3_path, header=True, inferSchema=True)

# Displaying the imported data
data_from_s3.show()

Đối với các loại dữ liệu khác, bạn có thể kiểm tra các phần Data engineeringConnect to data sources trong tài liệu của Databricks.

2. Running SQL in Databricks

Khi chúng ta tải tập tin diamonds.csv, nó đã trở thành một bảng Databricks trong cơ sở dữ liệu có tên là default:

Cơ sở dữ liệu mặc định này được tạo ra mỗi khi chúng ta cố gắng tải các tệp có cấu trúc mà không tạo cơ sở dữ liệu trước.

Nếu chúng ta đã có một cơ sở dữ liệu, điều đó có nghĩa là chúng ta có thể truy vấn nó bằng SQL, không chỉ bằng Spark. Để làm điều đó, hãy tạo một notebook mới hoặc thay đổi ngôn ngữ của notebook hiện tại thành SQL. Sau đó, hãy thử đoạn mã sau:

SELECT * FROM default.diamonds_1_csv
LIMIT 5;

Nó phải trả về năm hàng đầu tiên của bảng diamonds:

Lưu ý: Tôi đang sử dụng một SQL notebook cho đoạn mã trên.

Bạn cũng có thể tải bảng này vào Pandas. Trong cùng một notebook, dán đoạn mã sau:

%python
# Import the necessary libraries
import pandas as pd

# Assuming 'default' is the database name and 'diamonds' is the table name
# Use the spark.sql function to query the table and retrieve the data
table_df = spark.sql("SELECT * FROM default.diamonds_1_csv")

# Convert the Spark DataFrame to a Pandas DataFrame
pandas_df = table_df.toPandas()

# Display the Pandas DataFrame
pandas_df.head()

Nó sẽ in ra phần đầu của bảng:

Bây giờ, bạn có thể thực hiện bất kỳ nhiệm vụ phân tích dữ liệu điển hình nào trên bảng bằng cả SQL và Pandas.

Kết luận

Chúng ta đã học và thực hiện được nhiều điều chỉ với tài khoản Databricks Community Edition cơ bản của mình. Để tiếp tục tìm hiểu về nền tảng này, bước đầu tiên là sử dụng bản dùng thử miễn phí hai tuần mà Databricks cung cấp cho các tài khoản cao cấp.

Sau đó, bạn có thể tìm hiểu thêm về các tính năng cốt lõi sau:

  • Quản lý các workspace Databricks
  • Đọc và ghi dữ liệu vào các cơ sở dữ liệu bên ngoài
  • Chuyển đổi dữ liệu
  • Điều phối dữ liệu, tức là lập lịch các tác vụ
  • Tổng quan toàn diện về Databricks SQL
  • Sử dụng Lakehouse AI cho học máy quy mô lớn.
Avatar photo

Leave a Reply

Your email address will not be published. Required fields are marked *