PySpark 和Pandas在机器学习和分析中的联合使用

写在前面:如何将Pyspark 和 Pandas结合起来做机器学习和常规的建模分析呢?

Spark处理大数据,Pandas处理小数据。

pyspark中的DataFrame是分布式的,可以用来处理大规模数据的ETL,处理后的数据collect到单机器节点上,然后交给Pandas dataframe来处理。

虽然Panas是单机处理的,但胜在功能工具比较齐全和完善,处理下小数据的分析和操作还是足够的。


一、基本ETL常规操作

1、从Pandas DataFrame创建 Spark DataFrame

import pandas as pd
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

2、Spark DataFrame转Pandas DataFrame

df.toPandas()

注意:PySpark的 DataFrame转成Pandas DataFrame的时候会把所有的数据collect到驱动器,因为Pandas的DataFrame不是分布式的,所以当数据量很大的时候,可能会内存溢出爆掉。

3、当一行数据量很大的时候,竖着展示

df.show(1, vertical=True)

4、查看列名和Schema

#查看列名
df.columns
#查看Schema
df.printSchema()

5、DataFrame的summary描述

#选择需要的列统计其summary描述
df.select("a", "b", "c").describe().show()

二、Pandas UDFs(也称为向量化的UDFs, Vectorized UDFs)在Spark DataFrame中使用

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值