HDFS_READ
HDFS_READ 関数は、Hadoop 分散ファイルシステム (HDFS) 内の区切り文字で区切られたファイルからデータを読み取ります。
スキーマは SYSFUN です。
- ファイルURL
- HDFS 内の入力ファイルのサーバー・アドレスおよびパスを指定する式。 file-url は VARCHAR(512) の値です。
- OPTIONS
- name=value のペアのリストを指定する式。 各ペアは、スペース文字で後続のペアと区切る必要があります。 options は VARCHAR(256) の値です。 options には、以下の名前と値のペアを含めることができます。
- 区切り文字=区切り文字の値
- file-url で指定される入力ファイルの区切り文字として使用される文字を指定します。
- ユーザー=ユーザー値
- IBM® InfoSphere® BigInsights® ファイル URL で指定された入力ファイルにアクセスできるユーザー名を指定します。
- パスワード=パスワードの値
- user=user-valueで識別される IBM InfoSphere BigInsights ユーザーのパスワードを指定します。
- authport=authport-value
- 入力のフォーム・ベースの認証のポートを指定します。 デフォルトは 8080 です。
HDFS_READ 関数は、入力ファイル内のレコードごとに 1 行が入った表を返します。 HDFS_READ は、汎用の表関数です。つまり、返される表の中の列は、表が定義されるときではなく、表が参照されるときに定義されます。
例 1: URL が http://hdfssrv.svl.ibm.com:8080 の HDFS ファイルを読み取ります。 入力ファイルの区切り文字はコンマです。 デフォルトの許可ポートを使用します。 入力ファイル内のレコードには、DECIMAL(8,3) フィールドと INTEGER フィールドの 2 つのフィールドがあります。
SELECT * FROM TABLE(
HDFS_READ(
'http://hdfssrv.svl.ibm.com:8080',
'delimiter=, user=biadmin password=passw0rd'))
AS T1(C1 DECIMAL(8,3), C2 INTEGER);例 2: 正常な Jaql 照会の出力が書き込まれるロケーションが URL として指定された HDFS ファイルを読み取ります。 このロケーションは、Jaql 照会を実行依頼する JAQL_SUBMIT 呼び出しの return-string パラメーターで指定されます。
SELECT * FROM TABLE(
HDFS_READ(
JAQL_SUBMIT(
'[[15.3, 16],[170.99,180]]->
write(del(location=''/tmp/test1.csv''));',
'http://hdfssrv.svl.ibm.com:14000/webhdfs/v1/tmp/test1.csv',
'http://jaqlsrv.svl.ibm.com:8080',
'timeout=60 user='biadmin', password=passw0rd'),
'user=biadmin password=passw0rd'))
AS T1(C1 DECIMAL(8,3), C2 INTEGER);