Skip to content

アプリケーション内で をクリックすると、お使いのDataRobotバージョンに関する全プラットフォームドキュメントにアクセスできます。

Data Prep Spark SQLガイドライン

構造化照会言語(SQL)は、リレーショナルデータベースに保存されたデータの管理に設計済みの宣言言語です。Spark SQLは、登録されたデータフレーム(名前のついた列に整理されたデータ)に対して、データベースに照会するために使用されるSQLと同じように、クエリを書くことができるSparkのコンポーネントです。Data PrepはSpark SQLツールで使用するSpark SQL関数のライブラリをサポートしています。

ユースケース

このセクションで示すデータセットの例には、ターゲット特徴量Hiredを含むジョブアプリケーションデータのサンプルが含まれています。

クエリーガイドライン

Data Prepにデータセットが読み込まれると、DataFrameとして登録され、Spark SQLステートメント内のdatasetエイリアスを使用してクエリーできるようになります。

Spark SQLを使用してデータを形成するには、Spark SQLツールを有効にし、Spark SQLステートメントペインにSQLクエリーを入力します。

Data Prepでは、SELECTクエリーのみ許可されています。列名を使用してクエリーを構築します。例を以下に示します。

SELECT
    EducationLevel,
    Hired
FROM dataset

その他の制限については、禁止されているキーワードと関数を参照してください。

サンプルクエリー

以下に示すのは、Data Prepで使用されるSpark SQLクエリーとその結果の説明です。

備考

Data Prepでは、SQLステートメントは大文字と小文字を区別し、キーワードには大文字のみ、特徴量名には小文字のみを使用するという共通のSQL規則に従います。

例1

SELECT * FROM dataset

更新されたデータセットには、データセットからのすべての列とすべての行が含まれています。

例2

SELECT * FROM dataset

結果はParseExceptionとなります。

例3

SELECT * from doesNotExist

結果はNoSuchTableExceptionとなります。

例4

SELECT Hired FROM dataset

更新されたデータセットには(アプリケーションが成功したかどうかを含む)Hired列のみとすべての行が含まれています。

例5

SELECT
    EducationLevel,
    Hired
FROM dataset
WHERE EducationLevel = 5

更新されたデータセットには、HiredおよびEducationLevel列と、EducationLevelが5であるこれらの行だけが含まれています。

例6

SELECT
    EducationLevel,
    CASE WHEN Hired = 'No' THEN 0 ELSE 1 END
AS HiredNum
FROM dataset
WHERE EducationLevel = 5

更新されたデータセットにはEducationLevelと、EducationLevelが5である行のHired列の数値バージョンが含まれています。

例7

SELECT
    EducationLevel,
    avg(CASE WHEN Hired = 'No' THEN 0 ELSE 1 END) AS acceptance_rate
FROM dataset
GROUP BY EducationLevel
ORDER BY EducationLevel

更新されたデータセットには、EducationLevelを基準に、EducationLevelと、EducationLevelグループ内の平均受入れ率が含まれています。

例8

SELECT
     EducationLevel,
     avg(CASE WHEN Hired = 'No' THEN 0 ELSE 1 END) AS acceptance_rate,
     std(CASE WHEN Hired = 'No' THEN 0 ELSE 1 END) AS acceptance_rate_std
FROM dataset
GROUP BY EducationLevel
ORDER BY EducationLevel

更新されたデータセットには、EducationLevelを基準に、EducationLevelと、EducationLevelグループ内の受入れ率の平均と標準偏差が含まれています。

例9

SELECT
    EducationLevel,
    length(Summary) AS length_summary
FROM dataset

ここには、アプリケーションに沿ったEducationLevelとカバーレターの長さが表示されます。

例10

SELECT
    EducationLevel,
    avg(length(Summary)) AS avg_length_summary,
    std(length(Summary)) AS std_length_summary,
    std(CASE WHEN Hired = 'No' THEN 0 ELSE 1 END) AS acceptance_rate_std,
    avg(CASE WHEN Hired = 'No' THEN 0 ELSE 1 END) AS acceptance_rate
FROM dataset
GROUP BY EducationLevel
ORDER BY EducationLevel

この例は、更新されたデータセットには、EducationLevelを基準に、EducationLevelEducationLevelグループ内の受け入れ率の平均と標準偏差、およびサマリー長さの平均と標準偏差が含まれます。

禁止されたキーワードと関数

一部のSparkSQL 2.4.0関数には、セキュリティリスクがあります。Data Prepは、潜在的なセキュリティリスクを高くするコマンドとメソッドの使用を禁止しています。

以下のタブをクリックして、禁止されたキーワードと関数のリストを表示します。

ALTER (DATABASE|SCHEMA)
ALTER [TABLE | VIEW]
ALTER VIEW
CREATE (DATABASE|SCHEMA)
CREATE FUNCTION
CREATE TABLE
CREATE VIEW
DROP DATABASE
DROP FUNCTION
DROP [TABLE | VIEW]
MSCK REPAIR TABLE or ALTER TABLE RECOVER PARTITIONS
TRUNCATE TABLE
USE
LOAD DATA
EXPLAIN
ADD FILE
ADD JAR
ANALYZE TABLE
CACHE TABLE
CLEAR CACHE
DESCRIBE DATABASE
DESCRIBE FUNCTION
DESCRIBE TABLE
LIST FILE
LIST JAR
REFRESH
REFRESH TABLE
RESET
SET
SHOW COLUMNS
SHOW CREATE TABLE
SHOW (DATABASES|SCHEMAS)
SHOW FUNCTIONS
SHOW PARTITIONS
SHOW TABLES or SHOW TABLE EXTENDED
SHOW TBLPROPERTIES
UNCACHE TABLE
DESCRIBE
CREATE TEMP VIEW USING
CREATE TABLE
INSERT [INTO | OVERWRITE]
CREATE TABLE
INSERT OVERWRITE DIRECTORY
java_method
reflect

注意事項

  • Data Prep Spark SQLツールは、Spark SQL 2.4.0で使用可能なコマンド関数をサポートしています。

  • SELECTクエリーのみが許可されています。現在のデータセットを変更する可能性のあるすべてのSQLの操作は、禁止されています(INSERTUPDATEDELETEなど)。

  • システムに悪影響を与える可能性がある組み込み関数も禁止されています(reflectjava_methodなど)。禁止されたキーワードと関数を参照してください。

  • 各SQLステートメントはSparkセッションの下で実行されるため、SQL実行間にデータが漏洩する可能性があります。

  • データ型の処理の場合:

    • 無限大がサポートされており、nullとして処理されます。
    • 列にデータ型が混在している場合、変換可能であれば、その値は指定された型に変換されます。変換可能でなければ、nullに設定されます。
    • SQL結果をData Prepデータセットに変換すると、SQL列からのすべてのデータ型がData Prepデータ型に変換されます。型がサポートされていない場合、文字列型に変換されます。

更新しました June 3, 2022
Back to top