PySpark和pandasDataFrames转换

学习用Apache数据框架转换PandasDataFramesDatabricks

Apache箭头和PyArrow

阿帕契箭头achespark使用模拟列数据格式高效传输JVM进程和Python进程间数据Python开发者使用pandas和NumPy数据使用它需要小配置或代码修改以确保兼容性并获取最大收益

PyArrow系Apache箭头绑定并安装在Databricks RuntimePyArrow版本信息可见于数据bricks运行时版,见Databricks运行时发布注解.

支持sql类型

SparkSQL所有数据类型均支持绿箭转换除地图类型,数组类型联想时间戳类型并嵌套structType系统.structType系统表示为pandas.DataFrame取而代之熊猫串行.二进制类型仅支持PyArrow0.1.0和以上版本

转换pySpark数据框架往返pandasDataFrames

箭头转换pySpark数据FrametoPandas ()并用熊猫DataFrame创建createDataFrame(pandas_df).

使用箭头方法设置spark配置spark.sql.execution.arrow.pyspark.enabled真实性.默认启动配置除高通量集群和UnityCatalog启动工作空间用户隔离集群

此外,优化启动spark.sql.execution.arrow.pyspark.enabled返回非Arrow实施时,可发生错误后再计算spark内部可使用spark配置控制此行为spark.sql.execution.arrow.pyspark.fallback.enabled.

实例

导入纽菲原封NP导入熊猫原封pd# 启动绿柱数据传输点火.conf.高山市"spark.sql.execution.arrow.pyspark.enabled",真实性)生成熊猫DataFramepdf大全=pd.数据Frame高山市NP.随机.兰德高山市百元,3)# 从熊猫数据Frame使用箭头创建spark数据Framedf=点火.创建DataFrame高山市pdf大全)spark数据Frame转换成熊猫数据Frame使用绿箭结果pdf=df.选择高山市"*").toPandas系统(b)

使用箭头优化产生结果与不启用箭头结果相同连绿箭头toPandas ()结果收集DataFrame所有记录到驱动程序,并应该对小子集数据完成

此外,并非所有spark数据类型都得到支持,如果列有非支持类型则报错万一报错时createDataFrame()Spark创建DataFrame