Skip to main content

Apache Spark SQL - JSON Dataset

Spark SQL cho phép đọc và xử lý dữ liệu từ các tệp JSON trong các ứng dụng của bạn. Khi bạn đọc dữ liệu từ tệp JSON, Spark SQL sẽ tạo ra một DataFrame để lưu trữ dữ liệu. DataFrame này cung cấp các tính năng truy vấn và biến đổi dữ liệu giống như DataFrame được tạo từ các nguồn dữ liệu khác trong Spark SQL.

spark-sql.jpg

Để đọc dữ liệu từ một tệp JSON, bạn có thể sử dụng phương thức read() của đối tượng SparkSession và chỉ định đường dẫn đến tệp (ví dụ: spark.read.json("path/to/file.json")). Bạn cũng có thể chỉ định tùy chọn cấu hình khác nhau để định dạng dữ liệu đầu vào, ví dụ như chỉ định tên cột và kiểu dữ liệu tương ứng, hoặc chỉ định các tùy chọn về định dạng dòng và cột.

Sau khi đọc dữ liệu từ tệp JSON, bạn có thể sử dụng các phương thức của đối tượng DataFrame để truy vấn và biến đổi dữ liệu. Ví dụ, bạn có thể sử dụng phương thức select() để chọn các cột cụ thể trong DataFrame, hoặc phương thức filter() để lọc các dòng dựa trên một điều kiện cho trước. Bạn cũng có thể sử dụng các phương thức nhóm và sắp xếp dữ liệu để tạo các báo cáo phức tạp hơn.

Với tính năng đọc dữ liệu từ các tệp JSON, Spark SQL là một công cụ mạnh mẽ và linh hoạt cho các nhà phát triển và nhà nghiên cứu dữ liệu để xử lý dữ liệu phức tạp từ nhiều nguồn khác nhau. Tuy nhiên, để đảm bảo hiệu suất tối đa khi xử lý dữ liệu lớn, bạn cần cân nhắc các tùy chọn cấu hình và tối ưu hóa truy vấn của mình.

Ví dụ, nếu bạn có một tệp JSON chứa các dữ liệu của các nhân viên như sau:

[
  {
    "name": "John Doe",
    "age": 30,
    "position": "Developer"
  },
  {
    "name": "Jane Smith",
    "age": 25,
    "position": "Designer"
  },
  {
    "name": "Bob Johnson",
    "age": 40,
    "position": "Manager"
  }
]

Bạn có thể đọc tệp này bằng cách sử dụng phương thức read() như sau:

from pyspark.sql import SparkSession

spark = SparkSession.builder.appName("Read JSON").getOrCreate()

df = spark.read.json("path/to/employees.json")
df.show()

Kết quả trả về sẽ là một đối tượng DataFrame chứa dữ liệu của các nhân viên trong tệp JSON.

+---+----------+-----+
|age|      name|position|
+---+----------+--------+
| 30|  John Doe|Developer|
| 25|Jane Smith| Designer|
| 40|Bob Johnson|  Manager|
+---+----------+--------+

Sau khi đọc dữ liệu từ tệp JSON, bạn có thể sử dụng các phương thức của đối tượng DataFrame để truy vấn và biến đổi dữ liệu. Ví dụ, bạn có thể sử dụng phương thức select() để chọn các cột cụ thể trong DataFrame, hoặc phương thức filter() để lọc các dòng dựa trên một điều kiện cho trước. Bạn cũng có thể sử dụng các phương thức nhóm và sắp xếp dữ liệu để tạo các báo cáo phức tạp hơn.