第一步:PySpark 应用程序从初始化开始,这是 PySpark 的入口点,如下所示。如果通过 pyspark 可执行文件在 PySpark shell 中运行它,则 shell 会自动在变量 spark 中为用户创建会话。SparkSession
from pyspark.sql import SparkSession
spark = SparkSession.builder.getOrCreate()
第二步:数据帧创建,有多种方式,本文使用Pandas
pandas_df = pd.DataFrame({
'a': [1, 2, 3],
'b': [2., 3., 4.],
'c': ['string1', 'string2', 'string3'],
'd': [date(2000, 1, 1), date(2000, 2, 1), date(2000, 3, 1)],
'e': [datetime(2000, 1, 1, 12, 0), datetime(2000, 1, 2, 12, 0), datetime(2000, 1, 3, 12, 0)]
})
df = spark.createDataFrame(pandas_df)
df
第三步:查看数据,使用DataFrame.show()来查看数据,下边代码为查看一行
df.show(1)
也可以垂直显示,当行太长
df.show(1, vertical=True)
可以看到 DataFrame 的架构和列名称
df.columns
df.printSchema()
显示数据帧的摘要
df.select("a", "b", "c").describe().show()
DataFrame.collect()
将分发的数据作为 Python 中的本地数据收集到驱动程序端。请注意,当数据集太大而无法放入驱动程序端时,这可能会引发内存不足错误,因为它收集了从执行程序到驱动程序端的所有数据。
df.collect()
为避免引发内存不足异常,可以使用 DataFrame.take()或
DataFrame.tail()
df.take(1)
PySpark DataFrame还提供toPandas方法
转换回熊猫DataFrame以利用熊猫API。请注意,还会将所有数据收集到驱动程序端,当数据太大而无法放入驱动程序端时,这些数据很容易导致内存不足错误。
df.toPandas()