from pyspark.sql.types import *
orderSchema = StructType([
StructField("SalesOrderNumber", StringType()),
StructField("SalesOrderLineNumber", IntegerType()),
StructField("OrderDate", DateType()),
StructField("CustomerName", StringType()),
StructField("Email", StringType()),
StructField("Item", StringType()),
StructField("Quantity", IntegerType()),
StructField("UnitPrice", FloatType()),
StructField("Tax", FloatType())
])
df = spark.read.format("csv").schema(orderSchema).load("Files/1218 order/2019.csv")
display(df)
Trong đó:
Orderschema=variance name, can put any name
StructType: Là một danh sách các StructField, đại diện cho các cột trong DataFrame.StructField: Xác định một cột trong DataFrame với ba thông tin chính:Tên cột (Name): VD: "SalesOrderNumber".Kiểu dữ liệu (Type): VD: StringType, IntegerType, DateType,...Có cho phép null hay không (Nullable, tùy chọn): Mặc định là True, nhưng bạn có thể đặt là False.
Câu lệnh from pyspark.sql.types import * được sử dụng để nhập toàn bộ các kiểu dữ liệu được định nghĩa trong thư viện PySpark vào mã của bạn.
Ý nghĩa:
PySpark cung cấp một tập hợp các kiểu dữ liệu qua module pyspark.sql.types để định nghĩa cấu trúc của DataFrame.
Lệnh này cho phép bạn sử dụng trực tiếp các kiểu dữ liệu (như StringType, IntegerType, StructType, v.v.) mà không cần phải gõ đầy đủ đường dẫn, ví dụ: pyspark.sql.types.StringType.
Ví dụ sử dụng
Nếu bạn không sử dụng from pyspark.sql.types import *, bạn cần viết như sau:
pythonCopy codeimport pyspark.sql.typesorderSchema = pyspark.sql.types.StructType([ pyspark.sql.types.StructField("SalesOrderNumber", pyspark.sql.types.StringType()), pyspark.sql.types.StructField("SalesOrderLineNumber", pyspark.sql.types.IntegerType()),])
**Các lệnh từ PySpark như from pyspark.sql.types import * chỉ hoạt động trong môi trường có PySpark được cài đặt và sử dụng.
Vì sao không áp dụng được trong các tool Python thông thường?
PySpark là một thư viện đặc biệt:
Nó được thiết kế để làm việc với hệ sinh thái Apache Spark, một framework xử lý dữ liệu phân tán.
PySpark yêu cầu Spark Runtime và không phải là một thư viện có sẵn trong các tool Python thông thường.
Khác biệt về mục tiêu sử dụng:
PySpark chủ yếu dành cho xử lý dữ liệu lớn (Big Data) trên các cụm máy tính (clusters).
Các tool Python thông thường (như pandas, numpy) được thiết kế để xử lý dữ liệu trên một máy tính đơn lẻ với dữ liệu nhỏ hơn.
Nhận xét
Đăng nhận xét