Spark リストを Pandas データフレームに変換する
-
topandas()
メソッドを使用して Spark リストを Pandas データフレームに変換する -
parallelize()
関数を使用して、Spark リストを Python Pandas データフレームに変換する - まとめ
この記事では、Spark 行リストを Pandas データフレームに変換します。
topandas()
メソッドを使用して Spark リストを Pandas データフレームに変換する
createDataframe()
の構文:
current_session.createDataFrame(data, schema=None, samplingRatio=None, verifySchema=True)
パラメーター:
data
: このパラメーターには、SQL/MySQL 形式のデータまたはデータセットが含まれます。スキーマ
: これには、データフレームの列名が含まれます。sampling Ratio
(float): 行の比率です。verify Schema
(bool): スキーマのデータ型をチェックするためのブール型です。
上記のパラメーターは、spark データフレーム オブジェクトを返します。 上記の方法の例は次のとおりです。
まず、この関数を使用して行リスト データを渡し、spark データフレームを作成します。 次に、PySpark とその他の関連モジュールをインポートします。
コード:
import pyspark
from pyspark.sql import SparkSession
from pyspark.sql import Row
row_pandas_session = SparkSession.builder.appName("row_pandas_session").getOrCreate()
row_object_list = [
Row(Topic="Machine Learning", Difficulty=10),
Row(Topic="Artifical Intligence", Difficulty=5),
Row(Topic="Deep learning", Difficulty=6),
Row(Topic="Python Ptogramming", Difficulty=7),
]
Spark データフレームを作成するには、createDataframe()
関数を使用します。
df = row_pandas_session.createDataFrame(row_object_list)
show()
関数を使用して、作成された Spark データフレームを表示します。
df.show()
出力:
+--------------------+----------+
| Topic|Difficulty|
+--------------------+----------+
| Machine Learning| 10|
|Artifical Intligence| 5|
| Deep learning| 6|
| Python Ptogramming| 7|
+--------------------+----------+
最後に、topandas()
関数を使用して、spark データフレームを Pandas データフレームに変換します。 次に、Pandas データフレームを出力します。
pandas_df = df.toPandas()
pandas_df
出力:
Topic Difficulty
0 Machine Learning 10
1 Artifical Intligence 5
2 Deep learning 6
3 Python Ptogramming 7
完全なコード:
import pyspark
from pyspark.sql import SparkSession
from pyspark.sql import Row
row_pandas_session = SparkSession.builder.appName("row_pandas_session").getOrCreate()
row_object_list = [
Row(Topic="Machine Learning", Difficulty=10),
Row(Topic="Artifical Intligence", Difficulty=5),
Row(Topic="Deep learning", Difficulty=6),
Row(Topic="Python Ptogramming", Difficulty=7),
]
df = row_pandas_session.createDataFrame(row_object_list)
df.show()
pandas_df = df.toPandas()
pandas_df
parallelize()
関数を使用して、Spark リストを Python Pandas データフレームに変換する
RDD を作成するには、parallelize()
関数を使用します。 並列化とは、事前定義されたコレクションの要素を、並列操作を実行できる分散データセットにコピーすることを指します。
構文:
sc.parallelize(data,numSlices)
どこ:
sc
: Spark コンテキスト オブジェクト
パラメーター:
data
: これは、RDD 用に作成されたデータまたはデータセットです。numSlices
: パーティションの数を指定します。 これはオプションのパラメーターです。
以下のコードは、前のセクションと同じです。
import pyspark
from pyspark.sql import SparkSession
from pyspark.sql import Row
row_pandas_session = SparkSession.builder.appName("row_pandas_session").getOrCreate()
row_object_list = [
Row(Topic="Machine Learning", Difficulty=10),
Row(Topic="Artifical Intligence", Difficulty=5),
Row(Topic="Deep learning", Difficulty=6),
Row(Topic="Python Ptogramming", Difficulty=7),
]
次に、RDD を使用してデータフレームを作成します。
rdd = row_pandas_session.sparkContext.parallelize(row_object_list)
rdd
出力:
ParallelCollectionRDD[11] at readRDDFromFile at PythonRDD.scala:274
次に、以下に示すように、データフレームを作成します。
df = row_pandas_session.createDataFrame(rdd)
df.show()
出力:
+--------------------+----------+
| Topic|Difficulty|
+--------------------+----------+
| Machine Learning| 10|
|Artifical Intligence| 5|
| Deep learning| 6|
| Python Ptogramming| 7|
+--------------------+----------+
最後に、それを Pandas データフレームに変換します。
df2 = df.toPandas()
print(df2)
出力:
Topic Difficulty
0 Machine Learning 10
1 Artifical Intligence 5
2 Deep learning 6
3 Python Ptogramming 7
まとめ
この記事では、2つの方法を使用しました。 最初に createDataframe()
関数を使用し、続いて topandas()
関数を使用して Spark リストを Pandas データフレームに変換します。
使用した 2 番目の方法は parallelize()
関数です。 この方法では、まず、前と同じ関数を使用して Spark データフレームを作成し、RDD を使用して並列化して Spark データフレームを作成しました。
Spark データフレームは、topandas()
関数を使用して Pandas データフレームに変換されます。