PySparkデータフレームチュートリアル–データフレームを使用したPySparkプログラミング



このPySparkDataframeチュートリアルブログでは、ApacheSparkでの変換とアクションについて複数の例を使用して学習します。

データフレームは、今日の業界の流行語です。人々は、Python、Scala、Rなどのデータ分析に使用される一般的な言語でそれを使用する傾向があります。さらに、ビッグデータ、Python for Spark、または 今日の業界で最も求められているスキルの1つになっています。それで、なぜ誰もがそれをそんなに使っているのですか?これを私たちと一緒に理解しましょう PySparkデータフレームチュートリアル ブログ。このブログでは、次のトピックについて説明します。





PySparkデータフレームチュートリアル:データフレームとは何ですか?

データフレームとは、一般に、表形式のデータ構造を指します。これは行を表し、各行はいくつかの観測値で構成されています。行にはさまざまなデータ形式を使用できます( 不均一 )、一方、列は同じデータ型のデータを持つことができます( 同種の )。データフレームには通常、列名や行名などのデータに加えて、いくつかのメタデータが含まれています。

Dataframe-Pyspark-Dataframe-Tutorial



データフレームは、SQLテーブルやスプレッドシートに似た、2次元のデータ構造に過ぎないと言えます。では、このPySparkデータフレームチュートリアルを進めて、なぜPysparkデータフレームが必要なのかを理解しましょう。

なぜデータフレームが必要なのですか?

1.構造化データと半構造化データの処理



データフレーム処理するように設計されています 構造化データと半構造化データの収集 。 Spark DataFrameの監視は、名前付きの列の下に編成されています。これは、ApacheSparkがDataFrameのスキーマを理解するのに役立ちます。これは、Sparkがこれらのクエリの実行プランを最適化するのに役立ちます。それも処理できます ペタバイト データの。

2.S ライセンスとダイシング

データフレームAPIは通常、 スライスアンドダイシング データ。含まれています操作名前または番号による行、列、セルの「選択」、行の除外など。統計データは通常、非常に乱雑で、多くの欠落した値や間違った値、および範囲違反が含まれています。したがって、データフレームの非常に重要な機能は、欠落データの明示的な管理です。

3.データソース

DataFrameは、さまざまなデータ形式とソースをサポートしています。これについては、このPysparkDataframeチュートリアルブログで後ほど説明します。さまざまなソースからデータを取り込むことができます。

4.多言語のサポート

Python、R、Scala、Javaなどのさまざまな言語のAPIをサポートしていますこれにより、プログラミングのバックグラウンドが異なる人々が使いやすくなります。

新しいアップデートを入手するには、YouTubeチャンネルに登録してください。

データフレームの機能

  • データフレームは 分散 自然界では、フォールトトレラントで高可用性のデータ構造になっています。
  • 遅延評価 は、値が必要になるまで式の評価を保持する評価戦略です。繰り返しの評価を回避します。 Sparkでの遅延評価は、アクションがトリガーされるまで実行が開始されないことを意味します。 Sparkでは、遅延評価の図は、Spark変換が発生したときに発生します。
  • データフレームは 不変 本来は。不変とは、その状態がオブジェクトであることを意味します 変更できません 作成後。しかし、私たちは変革することができますその適用することによる値一定RDDのように変換。

PySparkデータフレームソース

Pysparkのデータフレームは、複数の方法で作成できます。

データは、 CSV、JSON、XML または寄木細工のファイル。既存のものを使用して作成することもできます RDD および他のデータベースを介して ハイブ または カサンドラ 同じように。また、HDFSまたはローカルファイルシステムからデータを取り込むこともできます。

データフレームの作成

このPySparkデータフレームチュートリアルブログを進めて、データフレームの作成方法を理解しましょう。

EmployeeインスタンスとDepartmentインスタンスを作成します。

from pyspark.sql import * Employee = Row( 'firstName'、 'lastName'、 'email'、 'salary')employee1 = Employee( 'Basher'、 'armbrust'、 'bash @ edureka.co'、100000)employee2 = Employee( 'Daniel'、 'meng'、 'daniel @ stanford.edu'、120000)employee3 = Employee( 'Muriel'、None、 'muriel @ waterloo.edu'、140000)employee4 = Employee( 'Rachel'、 'wendell '、' rach_3 @ edureka.co '、160000)employee5 = Employee(' Zach '、' galifianakis '、' zach_g @ edureka.co '、160000)print(Employee [0])print(employee3)department1 = Row(id = '123456'、name = 'HR')department2 = Row(id = '789012'、name = 'OPS')department3 = Row(id = '345678'、name = 'FN')department4 = Row(id = ' 901234 '、name =' DEV ')

次に、EmployeeとDepartmentsからDepartmentWithEmployeesインスタンスを作成します

departmentWithEmployees1 = Row(department = department1、employees = [employee1、employee2、employee5])departmentWithEmployees2 = Row(department = department2、employees = [employee3、employee4])departmentWithEmployees3 = Row(department = department3、employees = [employee1、employee4、employee3 ])departmentWithEmployees4 = Row(department = department4、employees = [employee2、employee3])

行のリストからデータフレームを作成しましょう

departmentsWithEmployees_Seq = [departmentWithEmployees1、departmentWithEmployees2] dframe = spark.createDataFrame(departmentsWithEmployees_Seq)display(dframe)dframe.show()

Pysparkデータフレーム例1:FIFAワールドカップデータセット

ここでは、FIFAワールドカッププレーヤーのデータセットを取り上げました。 CSV形式のこのデータをロードします次に、このデータフレームで実行できるさまざまな変換とアクションについて学習します。

CSVファイルからデータを読み取る

CSVファイルからデータをロードしてみましょう。ここでは、 spark.read.csv データをデータフレームfifa_dfにロードするメソッド。実際の方法は spark.read.format [csv / json]

fifa_df = spark.read.csv( 'path-of-file / fifa_players.csv'、inferSchema = True、header = True)fifa_df.show()

データフレームのスキーマ

つまり、スキーマを確認します。データフレームの構造については、 printSchema 方法。これにより、データフレーム内のさまざまな列が、その特定の列のデータ型とnull許容条件とともに提供されます。

fifa_df.printSchema()

列名と数(行と列)

特定のデータフレームの行と列の名前と数を確認する場合は、次の方法を使用します。

fifa_df.columns //列名fifa_df.count()//行数len(fifa_df.columns)//列数

37784 8

特定の列の説明

データフレームの特定の列の概要を確認したい場合は、 説明します 方法。このメソッドは、指定された列の統計要約を提供します。指定されていない場合は、データフレームの統計要約を提供します。

アラートはJavaScriptで何をしますか
fifa_df.describe( 'Coach Name')。show()fifa_df.describe( 'Position')。show()

複数の列を選択する

データフレームから特定の列を選択する場合は、 選択する 方法。

fifa_df.select( 'プレーヤー名'、 'コーチ名').show()

個別の複数の列の選択

fifa_df.select( 'プレーヤー名'、 'コーチ名').distinct()。show()

データのフィルタリング

指定された条件に従ってデータをフィルタリングするために、 フィルタ コマンド。ここでは、一致IDが1096に等しくなければならないという条件に基づいてデータフレームをフィルタリングし、フィルタリングされた出力にあるレコード/行の数を計算しています。

fifa_df.filter(fifa_df.MatchID == '1096')。show()fifa_df.filter(fifa_df.MatchID == '1096')。count()//カウントを取得する

データのフィルタリング(複数のパラメーター)

複数の条件(ANDまたはOR)に基づいてデータをフィルタリングできます

fifa_df.filter((fifa_df.Position == 'C')&&(fifa_df.Event == 'G40' '))。show()

データの並べ替え(OrderBy)

データを並べ替えるには、 OrderBy 方法。デフォルトでは、昇順で並べ替えられますが、降順に変更することもできます。

fifa_df.orderBy(fifa_df.MatchID).show()

PySparkデータフレームの例2:スーパーヒーローのデータセット

データの読み込み

ここでは、前に行ったのと同じ方法でデータをロードします。

Superhero_df = spark.read.csv( 'path-of file / superheros.csv'、inferSchema = True、header = True)Superhero_df.show(10)

データのフィルタリング

Superhero_df.filter(Superhero_df.Gender == 'Male')。count()//男性のヒーロー数Superhero_df.filter(Superhero_df.Gender == 'Female')。count()//女性のヒーロー数

データのグループ化

GroupBy 指定された列に基づいてデータフレームをグループ化するために使用されます。ここでは、Race列に基づいてデータフレームをグループ化し、次に カウント 関数、特定の人種の数を見つけることができます。

Race_df = Superhero_df.groupby( 'Race')。count()。show()

SQLクエリの実行

SQLクエリを任意のデータフレームに直接渡すこともできます。そのため、を使用してデータフレームからテーブルを作成する必要があります。 registerTempTable メソッドを使用してから sqlContext.sql() SQLクエリを渡します。

Superhero_df.registerTempTable( 'superhero_table')sqlContext.sql( 'select * from superhero_table')。show()

sqlContext.sql( 'superhero_tableからdistinct(Eye_color)を選択').show()

sqlContext.sql( 'superhero_tableからdistinct(Eye_color)を選択').count()

2. 3

sqlContext.sql( 'select max(Weight)from superhero_table')。show()

これで、このPySparkデータフレームチュートリアルは終了です。

だから、これだ、みんな!

PySparkデータフレームとは何か、なぜ業界で使用されているのか、このPySparkデータフレームチュートリアルブログでその機能を理解していただければ幸いです。おめでとうございます、あなたはもはやデータフレームの初心者ではありません。 PySparkの詳細を知り、さまざまな業界のユースケースを理解したい場合は、 PythonでSpark そして PySparkチュートリアル ブログ。