PySpark中‘ps’是什么?绘制直方图、箱线图遇报错求助
PySpark中'ps'的含义及直方图、箱线图绘制方法
什么是'ps'
ps是**pyspark.pandas**的常用别名,这是Spark提供的兼容Pandas语法的API,能让熟悉Pandas的开发者用类似的方式操作Spark数据。使用前必须先导入并别名:
import pyspark.pandas as ps
未执行该导入语句直接使用ps,会抛出NameError异常。
箱线图绘制方法
方法1:使用PySpark Pandas API(ps)
import pyspark.pandas as ps import numpy as np # 构造示例数据 data = np.random.randn(100, 4) df = ps.DataFrame(data, columns=list('ABCD')) # 生成箱线图 df.plot.box()
方法2:原生PySpark结合Matplotlib
如果更倾向于原生PySpark操作,可将Spark DataFrame转为Pandas DataFrame后绘图:
from pyspark.sql import SparkSession import matplotlib.pyplot as plt import numpy as np # 初始化SparkSession spark = SparkSession.builder.appName("BoxplotDemo").getOrCreate() # 创建Spark DataFrame data = [(float(np.random.randn()),) * 4 for _ in range(100)] spark_df = spark.createDataFrame(data, schema=['A', 'B', 'C', 'D']) # 转换为Pandas DataFrame并绘制箱线图 pandas_df = spark_df.toPandas() pandas_df.plot.box() plt.show()
直方图绘制方法
方法1:使用PySpark Pandas API(ps)
如果是从Pandas DataFrame转换而来:
import pandas as pd import pyspark.pandas as ps import numpy as np # 创建Pandas DataFrame pd_df = pd.DataFrame(np.random.randn(100, 4), columns=list('ABCD')) # 转为PySpark Pandas DataFrame ps_df = ps.from_pandas(pd_df) # 生成直方图 ps_df.plot.hist(bins=12, alpha=0.5)
如果直接用PySpark Pandas创建DataFrame:
import pyspark.pandas as ps import numpy as np data = np.random.randn(100, 4) ps_df = ps.DataFrame(data, columns=list('ABCD')) ps_df.plot.hist(bins=12, alpha=0.5)
方法2:原生PySpark结合Matplotlib
from pyspark.sql import SparkSession import matplotlib.pyplot as plt import numpy as np spark = SparkSession.builder.appName("HistogramDemo").getOrCreate() # 创建Spark DataFrame data = [(float(np.random.randn()),) * 4 for _ in range(100)] spark_df = spark.createDataFrame(data, schema=['A', 'B', 'C', 'D']) # 转换为Pandas DataFrame并绘制直方图 pandas_df = spark_df.toPandas() pandas_df.plot.hist(bins=12, alpha=0.5) plt.show()
内容的提问来源于stack exchange,提问作者Wee Liang Kelven Lim
相关产品推荐
相关产品推荐

