koalas简介
pandas在python数据分析中是一个非常好用的库,但他是单机的,能够处理的数据量有限。spark在大数据生态中目前处于霸主地位(当然在国内实时流计算flink更流行一些),它擅长处理海量数据,而koalas就是可以将pandas操作搬到spark上运行的神器。你没看错,不需要学习新的东西,只需要替换一个包,就能将pandas代码运行到spark上。
详细资料可以上这里get
https://docs.microsoft.com/zh-cn/azure/databricks/languages/koalas
windows10下安装koalas
我使用的python版本是3.7,用anaconda管理包。
依赖包pyarrow下载
下载地址
https://pypi.org/project/pyarrow/#files
选择跟我们环境对应的whl文件
koalas下载
下载地址
https://pypi.org/project/koalas/
操蛋的是两个包下载特别慢,在此共享一份,版本信息:python3.7 windows
链接:https://pan.baidu.com/s/1R5KrOiOBqtxfMto_nV21dw
提取码:2d2r
安装
我将上面下载的两个包放到了E盘。打开anaconda powershell prompt进入到e盘
e:
依次安装两个包
pip install .\pyarrow-0.17.1-cp37-cp37m-win_amd64.whl
pip install .\koalas-1.0.1-py3-none-any.whl
到这里就完成环境安装了,就这么简单。
环境验证
我下面的代码是从这个网站上拿下来的,是一个koalas教程,可以自己运行体会一下
https://docs.microsoft.com/zh-cn/azure/databricks/_static/notebooks/pandas-to-koalas-in-10-minutes.html
打开jupyter,运行下面代码
import numpy as np
import pandas as pd
import databricks.koalas as ks
# Create a pandas Series
pser = pd.Series([1, 3, 5, np.nan, 6, 8])
# Create a Koalas Series
kser = ks.Series([1, 3, 5, np.nan, 6, 8])
# Create a Koalas Series by passing a pandas Series
kser = ks.Series(pser)
kser = ks.from_pandas(pser)
print(pser)
print("*****************************")
print(kser)
0 1.0
1 3.0
2 5.0
3 NaN
4 6.0
5 8.0
dtype: float64
0 1.0
1 3.0
2 5.0
3 NaN
4 6.0
5 8.0
Name: 0, dtype: float64
# Create a pandas DataFrame
pdf = pd.DataFrame({'A': np.random.rand(5),
'B': np.random.rand(5)})
# Create a Koalas DataFrame
kdf = ks.DataFrame({'A': np.random.rand(5),
'B': np.random.rand(5)})
# Create a Koalas DataFrame by passing a pandas DataFrame
kdf = ks.DataFrame(pdf)
kdf = ks.from_pandas(pdf)
print(pdf)
print(kdf)
kdf.sort_index()
kdf.describe()
A B
0 0.413144 0.047644
1 0.326874 0.395861
2 0.398785 0.813530
3 0.281820 0.084914
4 0.299369 0.431540
A B
0 0.413144 0.047644
1 0.326874 0.395861
2 0.398785 0.813530
3 0.281820 0.084914
4 0.299369 0.431540
A B
0 0.413144 0.047644
1 0.326874 0.395861
2 0.398785 0.813530
3 0.281820 0.084914
4 0.299369 0.431540
A B
count 5.000000 5.000000
mean 0.343998 0.354698
std 0.059021 0.310319
min 0.281820 0.047644
25% 0.299369 0.084914
50% 0.326874 0.395861
75% 0.398785 0.431540
max 0.413144 0.813530