在 Apache Spark 中,可以使用 org.apache.spark.sql.types.StructType
和 org.apache.spark.sql.types.StructField
來定義數據結構,然后使用 org.apache.spark.sql.SparkSession
的 createDataFrame()
方法將數據序列化為 DataFrame。以下是一個簡單的示例:
from pyspark.sql import SparkSession
from pyspark.sql.types import StructType, StructField, StringType, IntegerType
spark = SparkSession.builder \
.appName("Data Serialization") \
.getOrCreate()
schema = StructType([
StructField("name", StringType(), True),
StructField("age", IntegerType(), True),
StructField("city", StringType(), True)
])
這里我們定義了一個包含姓名、年齡和城市的簡單數據結構。
data = [
("Alice", 30, "New York"),
("Bob", 25, "San Francisco"),
("Cathy", 22, "Los Angeles")
]
createDataFrame()
方法將數據序列化為 DataFrame:df = spark.createDataFrame(data, schema=schema)
df.show()
這將輸出以下內容:
+-----+---+--------------+
| name|age| city|
+-----+---+--------------+
|Alice| 30| New York|
| Bob| 25|San Francisco|
|Cathy| 22| Los Angeles|
+-----+---+--------------+
這樣,我們就完成了數據的序列化。在實際應用中,你可能需要從文件、數據庫或其他數據源讀取數據,并將其序列化為 DataFrame。在這種情況下,可以使用 spark.read.csv()
、spark.read.json()
等方法來讀取數據。