注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
Code Workbook では、Spark R とネイティブ R の両方を使用できます。Spark R は、大規模なデータセットに対して選択、フィルター処理、集計などの操作をサポートする分散データフレーム実装を提供します。ユーザーはネイティブ R により馴染みがあるかもしれませんが、まず SparkR を使用して大規模なデータセットをフィルター処理することをお勧めします。
SparkR のすべての可能な操作を確認するには、API ドキュメントを参照してください。以下では、一般的な操作の構文を説明しています。
フィルター式は、文字列として渡される SQL のような WHERE 句になることができます。
Copied!1 2
# numeric_colが10より大きいデータをフィルタリングして、df_filteredに保存します df_filtered <- SparkR::filter(df, "numeric_col > 10")
標準的なR構文に似た行式も使用することができます。
Copied!1 2 3
# SparkRのfilter関数を使って、dfのnumeric_colが10より大きい行をフィルタリングします。 # フィルタリングされたデータフレームはdf_filteredに保存されます。 df_filtered <- SparkR::filter(df, df$numeric_col > 10)
同様の構文で SparkR::where
も使用できます。
Copied!1 2
# "numeric_col"が10より大きい行をフィルタリングして、df_filteredに格納します。 df_filtered <- SparkR::where(df, "numeric_col > 10")
SparkR::select()
を使用して、行をサブセットに分けます。
Copied!1 2
# df から "column1"、"column2"、"column3" の列を選択して、df_subset に代入します df_subset <- SparkR::select(df, "column1", "column2", "column3")
SparkR::withColumnRenamed()
を使用して行をリネームします。
Copied!1 2 3
# df はデータフレームです # SparkR::withColumnRenamed 関数を使用して、データフレーム df の "old_column_name" 列の名前を "new_column_name" に変更します df <- SparkR::withColumnRenamed(df, "old_column_name", "new_column_name")
SparkR::withColumn()
を使用して新しい行を追加します。
Copied!1 2 3 4
# 二つのカラムを追加します df <- SparkR::withColumn(df, 'col1_plus_col2', df$col1 + df$col2) # 'col1_plus_col2'という新しいカラムを作成し、その値は'col1'と'col2'の合計値とします # カラムの値を定数で乗算します df <- SparkR::withColumn(df, 'col1_times_60', df$col1 * 60) # 'col1_times_60'という新しいカラムを作成し、その値は'col1'の値を60倍したものとします
集約を計算するには、SparkR::groupBy
と SparkR::agg
を使用します。SparkR::groupBy
を呼び出すと、グループ化オブジェクトが作成されます。グループ化オブジェクトを SparkR::agg
に渡して、集約されたデータフレームを取得します。
Copied!1 2 3 4
# df を "group_col1" と "group_col2" でグループ化します df_grouped <- SparkR::groupBy(df, "group_col1", "group_col2") # グループごとに col1 の平均 (average_col1) と最大値 (max_col) を計算します df_agg <- SparkR::agg(df_grouped, average_col1=avg(df$col1), max_col=max(df$col1))