bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

Spark3.0中pandas支持及其與DataFrame相互轉換的示例分析

這篇文章主要為大家展示了“Spark 3.0中pandas支持及其與DataFrame相互轉換的示例分析”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“Spark 3.0中pandas支持及其與DataFrame相互轉換的示例分析”這篇文章吧。

創新互聯是專業的五常網站建設公司,五常接單;提供成都網站制作、網站設計,網頁設計,網站設計,建網站,PHP網站建設等專業做網站服務;采用PHP框架,可快速的進行五常網站開發網頁制作和功能擴展;專業做搜索引擎喜愛的網站,專業的做網站團隊,希望更多企業前來合作!

pandas是python用戶廣泛使用的數據分析庫,Spark 3.0已經能較好滴支持pandas接口,從而彌補pandas不能跨機進行大數據處理的不足。pandas還能夠與Spark原來的DataFrame相互轉換,方便Spark和Python的庫相互調用。

1、Koalas: pandas API on Apache Spark

Koalas(https://koalas.readthedocs.io/en/latest/)項目使數據科學家在處理大數據時能夠更有效率,通過在Spark的上層實現一套pandas DataFrame API。pandas 是python數據處理事實上的標準,而Spark是大數據處理的事實上的標準。通過Koalas,可以:

  • 通過 Spark 立即提升大數據處理生產力,如果熟悉pandas不用學習任何新的知識。

  • 在pandas (tests, smaller datasets) 和 Spark (distributed datasets)只需要一套數據分析代碼,方便從研究環境擴展到生產環節。

1.1 安裝指南

Koalas要求PySpark,需要首先安裝PySpark。

Koalas安裝的多種方式包括:

  • Conda

  • PyPI

  • Installation from source

安裝PySpark,可以使用:

  • Installation with the official release channel

  • Conda

  • PyPI

  • Installation from source

1.2 Python 支持的版本

建議Python 3.5 及以上版本。

1.3 安裝 Koalas
  • 通過 Conda 安裝

首先需要安裝 Conda ,然后創建一個conda環境。如下:

conda create --name koalas-dev-env

將創建一個只有 Python的最小環境,激活當前環境:

conda activate koalas-dev-env

安裝 Koalas:

conda install -c conda-forge koalas

安裝Koalas的特定版本:

conda install -c conda-forge koalas=0.19.0
  • 從 PyPI 安裝

Koalas 可以使用 pip 從 PyPI 安裝:

pip install koalas
  • 從源碼安裝

查看 Contribution Guide 獲得更多指南。

1.4 安裝 PySpark
  • 采用官方頻道安裝:

安裝PySpark,從 the official release channel 下載。下載后,解包:

tar xzvf spark-2.4.4-bin-hadoop2.7.tgz

設置 SPARK_HOME 環境變量:

cd spark-2.4.4-bin-hadoop2.7
export SPARK_HOME=`pwd`

確保 PYTHONPATH 可以被 PySpark 和 Py4J找到,在 $SPARK_HOME/python/lib

export PYTHONPATH=$(ZIPS=("$SPARK_HOME"/python/lib/*.zip); IFS=:; echo "${ZIPS[*]}"):$PYTHONPATH
  • 從Conda安裝:

PySpark 也可以從 Conda 安裝:

conda install -c conda-forge pyspark
  • 從PyPI安裝:

PySpark 可以從 PyPI 安裝:

pip install pyspark

2、Koalas快速使用

首先,import Koalas 如下:

import pandas as pdimport numpy as npimport databricks.koalas as ksfrom pyspark.sql import SparkSession

數據對象創建

創建 Koalas Series,創建一個整數序列值:

s = ks.Series([1, 3, 5, np.nan, 6, 8])
s
0    1.0
1    3.0
2    5.0
3    NaN
4    6.0
5    8.0
dtype: float64

創建 Koalas DataFrame,導入詞典對象,轉為一個序列:

kdf = ks.DataFrame({'a': [1, 2, 3, 4, 5, 6], 'b': [100, 200, 300, 400, 500, 600], 'c': ["one", "two", "three", "four", "five", "six"]},index=[10, 20, 30, 40, 50, 60])
kdf
 abc
101100one
202200two
303300three
404400four
505500five
606600six

創建 pandas DataFrame,導入 numpy array,帶datetime index 和 labeled columns:

dates = pd.date_range('20130101', periods=6)
dates
DatetimeIndex(['2013-01-01', '2013-01-02', '2013-01-03', '2013-01-04',
               '2013-01-05', '2013-01-06'],
              dtype='datetime64[ns]', freq='D')
pdf = pd.DataFrame(np.random.randn(6, 4), index=dates, columns=list('ABCD'))
pdf
 ABCD
2013-01-01-0.4072910.066551-0.0731490.648219
2013-01-02-0.8487350.4372770.6326570.312861
2013-01-03-0.415537-1.7870720.2422210.125543
2013-01-04-1.6372711.1348100.2825320.133995
2013-01-05-1.230477-1.9257340.736288-0.547677
2013-01-061.092894-1.0712810.318752-0.477591

現在,把pandas DataFrame 轉為 Koalas DataFrame:

kdf = ks.from_pandas(pdf)
type(kdf)
databricks.koalas.frame.DataFrame

看起來與 pandas DataFrame幾乎一樣。

  • 更多例程:https://koalas.readthedocs.io/en/latest/getting_started/10min.html

3、pandas與dataframe的轉換

pandas與dataframe、koalas都可以相互轉換。注意pandas與dataframe的轉換效率較低,而且pandas原生接口是單機的,建議使用Koalas。

3.1 pandas的dataframe轉spark的dataframe
from pyspark.sql import SparkSession# 初始化spark會話spark = SparkSession \
    .builder \
    .getOrCreate()

spark_df = spark.createDataFrame(pandas_df)
3.2 spark的dataframe轉pandas的dataframe
import pandas as pdpandas_df = spark_df.toPandas()

由于pandas的方式是單機版的,即toPandas()的方式是單機版的,所以參考breeze_lsw改成分布式版本:

import pandas as pddef _map_to_pandas(rdds):return [pd.DataFrame(list(rdds))]    
def topas(df, n_partitions=None):if n_partitions is not None: df = df.repartition(n_partitions)
    df_pand = df.rdd.mapPartitions(_map_to_pandas).collect()
    df_pand = pd.concat(df_pand)
    df_pand.columns = df.columnsreturn df_pand
	
pandas_df = topas(spark_df)

以上是“Spark 3.0中pandas支持及其與DataFrame相互轉換的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注創新互聯行業資訊頻道!

名稱欄目:Spark3.0中pandas支持及其與DataFrame相互轉換的示例分析
網頁地址:http://vcdvsql.cn/article26/pepgcg.html

成都網站建設公司_創新互聯,為您提供App設計動態網站網站維護Google手機網站建設ChatGPT

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

網站托管運營