テーブル・ファンクション演算子リファレンス
テーブル・ファンクション演算子は、データ・フローで使用して表の形式でデータを返すことができる組込みテーブル・ファンクションのリストを提供します。
「テーブル・ファンクション演算子」を参照してください。
テーブル・ファンクション演算子でサポートされている組込みテーブル・ファンクションのリストを次に示します。
指定されたメモリー・ストレージlevel
に従ってデータセットを保持およびキャッシュします。
キャッシュされた自己回復分散データセット(RDD)に新しいデータセットを返します。
パラメータ | 説明 |
---|---|
level |
使用するメモリー・ストレージ:
|
指定された2列の個別値から、ペア単位の頻度表または偶発表を計算します。
各列の個別値の数は、1e4より小さくする必要があります。
偶発表を含むデータフレームを返します。偶発テーブル:
- 最初の列の名前は
col1_col2
で、col1
は最初の列、col2
は変換前の2番目の列です。各行の最初の列は、col1
の個別値です。 - その他の列名は、
col2
の個別値です。 - カウントは
long
タイプとして返されます。 - 発生なしのペアは、カウントとしてゼロになります。
- ゼロ以外のペアの最大数は1e6です。
- NULL要素は
null
に置き換えられます。
パラメータ | 説明 |
---|---|
col1 |
最初の列の名前。制限事項については、この表の後のノートを参照してください。
|
col2 |
2番目の列の名前。制限事項については、この表の後のノートを参照してください。
|
列名で使用できるのは次の文字のみです:
- 大文字と小文字
a-z
A-Z
- 数値
0-9
- アンダースコア
_
例
col1
がage
で、col2
がsalary
であるとします。
変換前:
+---+------+
|age|salary|
+---+------+
|1 |100 |
|1 |200 |
|2 |100 |
|2 |100 |
|2 |300 |
|3 |200 |
|3 |300 |
+---+------+
変換後:
+----------+---+---+---+
|age_salary|100|200|300|
+----------+---+---+---+
|2 |2 |0 |1 |
|1 |1 |1 |0 |
|3 |0 |1 |1 |
+----------+---+---+---+
指定された列リストおよび指定された集計関数式の計算を使用して、可能なすべての組合せの多次元キューブを生成します。
式では、次の集計関数がサポートされています。
AVG
COUNT
MEAN
MAX
MIN
SUM
キューブ変換後にデータフレームを返します。
パラメータ | 説明 |
---|---|
cubeColumns |
マルチディメンション・キューブを生成するための列のリストをカンマで区切ります。 |
aggExpressions |
列に対して実行する集計関数式。 たとえば: |
例
変換前:
+----------+-----+-------+------+---+
|department|group|region |salary|age|
+----------+-----+-------+------+---+
|Eng |A |local |1000 |10 |
|Art |B |foreign|2000 |11 |
|Sport |C |local |1500 |13 |
|Eng |A |foreign|800 |19 |
|Art |A |foreign|3000 |30 |
|Eng |E |foreign|1000 |21 |
|Art |D |local |1000 |32 |
|Sport |C |local |1000 |28 |
+----------+-----+-------+------+---+
cubeColumns
がdepartment, region
で、aggExpressions
がsalary -> avg, age -> max
(平均給与および最大年齢を計算)の場合、変換後のキューブは次のようになります。
+----------+-------+-----------------+--------+
|department|region |avg(salary) |max(age)|
+----------+-------+-----------------+--------+
|Eng |foreign|900.0 |21 |
|Sport |null |1250.0 |28 |
|Art |null |2000.0 |32 |
|Eng |null |933.3333333333334|21 |
|null |local |1125.0 |32 |
|Art |foreign|2500.0 |30 |
|null |foreign|1700.0 |30 |
|Eng |local |1000.0 |10 |
|null |null |1412.5 |32 |
|Sport |local |1250.0 |28 |
|Art |local |1000.0 |32 |
+----------+-------+-----------------+--------+
指定されたファイル形式およびコンテンツを使用して合成データを生成します。サポートされているファイル形式は次のとおりです。
- CSV
- JSON
データ・エンティティを返します。合成データ・ソースは、実データが使用または移動されないパイプライン・ユニット・テストで使用できます。
パラメータ | 説明 |
---|---|
format |
ファイルのタイプ。サポートされている値:
|
content |
指定されたフォーマットのファイル・コンテンツ。 |
例
CSVコンテンツの例:
co1,co2,co3
1,B,3
A,2,C
データ生成結果:
+---+---+---+
|co1|co2|co3|
+---+---+---+
|1 |B |3 |
+---+---+---+
|A |2 |C |
+---+---+---+
指定された1つ以上の列リストで重複を検索し、重複行が削除された新しいデータセットを返します。
パラメータ | 説明 |
---|---|
columns |
列名または列名のカンマ区切りリスト。 |
例
変換前:
+---+---+
|a |b |
+---+---+
|1 |2 |
|3 |4 |
|1 |3 |
|2 |4 |
+---+---+
columns
がa
の場合、変換後のデータセットは次のようになります。
+---+---+
|a |b |
+---+---+
|1 |2 |
|3 |4 |
|2 |4 |
+---+---+
指定された最小頻度を使用して、指定された列または列リスト内の頻度の高い項目を検索します。
Karl et al.によって提案された頻繁な要素数アルゴリズムは、頻繁な項目を見つけるために使用されます。偽陽性はありえます。
各列の頻度の高い項目の配列を持つデータフレームを返します。
パラメータ | 説明 |
---|---|
freqItems |
頻繁な項目を検索する列名または列名のカンマ区切りリスト。 |
support |
アイテムが頻繁に考慮される最小頻度。 値は、1e-4 ( たとえば、 |
例
変換前:
+-------+--------------+
|user_id|favorite_fruit|
+-------+--------------+
| 1| apple|
| 2| banana|
| 3| apple|
| 4| orange|
| 5| banana|
| 6| banana|
| 7| apple|
+-------+--------------+
freqItems
がfavorite_fruit
で、support
が0.6
の場合、変換後に返されるデータフレームは次のとおりです。
+------------------------+
|favorite_fruit_freqItems|
+------------------------+
| [banana]|
+------------------------+
指定された列リストにNULL値またはNaN値を含む行を削除します。
行を除外するデータフレームを返します。
パラメータ | 説明 |
---|---|
how |
行を削除するかどうかを決定する方法。サポートされている値:
|
cols |
列名または列名のカンマ区切りリスト。 |
minNonNulls |
行に含めることができる、nullおよびNaN以外の値の最小数。 指定した最小値より小さい行を削除します。
|
例
変換前:
+----+-------+----+
|id |name |age |
+----+-------+----+
|1 |Alice |25 |
|2 |null |28 |
|null|Bob |null|
|4 |Charlie|30 |
+----+-------+----+
how
がany
で、cols
がname
の場合、変換後に返されるデータフレームは次のとおりです。
+----+-------+----+
|id |name |age |
+----+-------+----+
|1 |Alice |25 |
|null|Bob |null|
|4 |Charlie|30 |
+----+-------+----+
how
パラメータを値all
とともに使用すると、すべての値がNULLの場合にのみ行が削除されます。たとえば、変換前:
+----+--------+----+
| id| name| age|
+----+--------+----+
| 1|John Doe| 30|
| 2| null|null|
| 3|Jane Doe| 25|
| 4|Jake Doe|null|
|null| null|null|
+----+--------+----+
変換後:
+---+--------+----+
| id| name| age|
+---+--------+----+
| 1|John Doe| 30|
| 2| null|null|
| 3|Jane Doe| 25|
| 4|Jake Doe|null|
+---+--------+----+
NULL値を置換し、置換された値を使用してデータフレームを返します。
パラメータ | 説明 |
---|---|
replacement |
NULL値の置換に使用するキー/値マップ。キーは列名です。値は置換値です。 置換値を指します。たとえば、 置換値は列のデータ型にキャストされます。置換値は、次のタイプである必要があります。
|
例
変換前:
+----+-------+----+
|id |name |age |
+----+-------+----+
|1 |Alice |25 |
|2 |null |28 |
|null|Bob |null|
|4 |Charlie|30 |
+----+-------+----+
キー/値マップは次のようになります。
id -> 3
name -> unknown
age -> 10
変換後:
+---+-------+---+
|id |name |age|
+---+-------+---+
|1 |Alice |25 |
|2 |unknown|28 |
|3 |Bob |10 |
|4 |Charlie|30 |
+---+-------+---+
指定されたキーおよび置換値マップのキーを照合して、指定された列内の別の値で値を置換します。
置換された変換を含む新しいデータフレームを返します。
パラメータ | 説明 |
---|---|
cols |
置換値を適用する列名または列名のカンマ区切りリスト。
|
replacement |
使用する置換キー/値マップ。キーは置換する値です。値は置換値です。マップ値にはNULLを指定できます。 置換値を指します。たとえば、 キーと置換値のペアは同じタイプである必要があります。次のタイプのみがサポートされます。
|
例
変換前:
+----+-------+----+
|id |name |age |
+----+-------+----+
|1 |Alice |25 |
|2 |null |28 |
|null|Bob |null|
|4 |Charlie|30 |
+----+-------+----+
cols
がname
で、replacement
がAlice -> Tom
の場合、変換後のデータフレームは次のようになります。
+----+-------+----+
|id |name |age |
+----+-------+----+
|1 |Tom |25 |
|2 |null |28 |
|null|Bob |null|
|4 |Charlie|30 |
+----+-------+----+
指定された列でデータセットを指定された数のパーティションに分割します。
ハッシュ・パーティション化された新しいデータセットを返します。指定されたパーティションの正確な数が返されます。
パラメータ | 説明 |
---|---|
partitionColumns |
データセットがパーティション化される列名の列名またはカンマ区切りリスト。 |
numberOfPartitions |
作成するパーティションの数。 |
指定された列リストおよび指定された集計関数式の計算を使用して、可能な組合せの多次元ロールアップを生成します。
式では、次の集計関数がサポートされています。
AVG
COUNT
MEAN
MAX
MIN
SUM
ロールアップ変換後にデータフレームを返します。
パラメータ | 説明 |
---|---|
rollupColumns |
マルチディメンション・ロールアップを生成するための列のリスト(カンマ区切り)。 |
aggExpressions |
列に対して実行する集計関数式。 たとえば: |
例
変換前:
+----------+-----+-------+------+---+
|department|group|region |salary|age|
+----------+-----+-------+------+---+
|Eng |A |local |1000 |10 |
|Art |B |foreign|2000 |11 |
|Sport |C |local |1500 |13 |
|Eng |A |foreign|800 |19 |
|Art |A |foreign|3000 |30 |
|Eng |E |foreign|1000 |21 |
|Art |D |local |1000 |32 |
|Sport |C |local |1000 |28 |
+----------+-----+-------+------+---+
rollupColumns
がdepartment, region
で、aggExpressions
がsalary -> avg, age -> max
(平均給与および最大年齢を計算)の場合、変換後のロールアップは次のようになります。
+----------+-------+-----------------+--------+
|department|region |avg(salary) |max(age)|
+----------+-------+-----------------+--------+
|Eng |foreign|900.0 |21 |
|Sport |null |1250.0 |28 |
|Art |null |2000.0 |32 |
|Eng |null |933.3333333333334|21 |
|Art |foreign|2500.0 |30 |
|Eng |local |1000.0 |10 |
|null |null |1412.5 |32 |
|Sport |local |1250.0 |28 |
|Art |local |1000.0 |32 |
+----------+-------+-----------------+--------+
最初に指定した表名を使用して一時ビューを作成することにより、受信データに対してSpark SQL問合せを実行します。
パラメータ | 説明 |
---|---|
SQL |
実行するSQL文またはスクリプト。 例: |
tableName |
Sparkが一時表を作成する際に使用する表名または表名のカンマ区切りリスト。 例: |
各層に指定されたサンプリング率に基づいて、置換なしで層別サンプルを生成します。
層別サンプルを表す新しいデータフレームを返します。
パラメータ | 説明 |
---|---|
strata_col |
strataを定義する列。 |
fractions |
たとえば、 小数点を指定しない場合、ゼロとみなされます。 |
sample_size |
|
seed |
|
例
変換前:
+---+-----+
|key|value|
+---+-----+
| 1| 1|
| 1| 2|
| 2| 1|
| 2| 1|
| 2| 3|
| 3| 2|
| 3| 3|
+---+-----+
strata_col
がkey
で、fractions
が次の場合:
1 -> 1.0, 3 -> 0.5
変換後:
+---+-----+
|key|value|
+---+-----+
| 1| 1|
| 1| 2|
| 3| 2|
+---+-----+
数値列および文字列列について指定された統計を計算します。
統計が指定されていない場合、次のすべてが計算されます。
COUNT
MEAN
STDDEV
MIN
- おおよその四分位数(パーセンタイルは25%、50%、75%)
MAX
パラメータ | 説明 |
---|---|
statistics |
統計のカンマ区切りリスト。 サポートされている値:
例: |
例
変換前:
+----------+------+-----------------+--------+
|department|gender|avg(salary) |max(age)|
+----------+------+-----------------+--------+
|Eng |female|900.0 |21 |
|Sport |null |1250.0 |28 |
|Art |null |2000.0 |32 |
|Eng |null |933.3333333333334|21 |
|Art |female|2500.0 |30 |
|Eng |male |1000.0 |10 |
|null |null |1412.5 |32 |
|Sport |male |1250.0 |28 |
|Art |male |1000.0 |32 |
+----------+------+-----------------+--------+
statistics
がcount, mean, stddev, min, 27%, 41%, 95%, max
であるとします。
変換後:
+-------+----------+-----+------+----------------+----------------+
|summary|department|group|gender|salary |age |
+-------+----------+-----+------+----------------+----------------+
|count |8 |8 |8 |8 |8 |
|mean |null |null |null |1412.5 |20.5 |
|stddev |null |null |null |749.166203188585|8.76682056718072|
|min |Art |A |female|800 |10 |
|27% |null |null |null |1000 |13 |
|41% |null |null |null |1000 |19 |
|95% |null |null |null |3000 |32 |
|max |Sport |E |male |3000 |32 |
+-------+----------+-----+------+----------------+----------------+