HDFS_READ

HDFS_READ函数从 Hadoop 分布式文件系统( HDFS )中以分隔符分隔的文件读取数据。

阅读语法图跳过可视化语法图HDFS_READ( 文件地址, 选项 )

模式为 SYSFUN。

文件地址
在 HDFS 中指定服务器地址和输入文件路径的表达式。 file-url 是一个VARCHAR(512)值。
选项
指定 “名称 = ”对列表的表达式。 每对单词之间必须用空格隔开。 选项是一个VARCHAR(256)值。 选项可以包含以下任意名称和值对:
分隔符=分隔符-值
标识在由file-url 指定的输入文件中用作分隔符的字符。
用户=用户价值
指定一个 IBM® InfoSphere® BigInsights® 用户名,该用户名有权访问由 file-url 指定的输入文件。
密码=密码值
为 IBM InfoSphere BigInsights 用户指定密码,该用户由user=user-value 标识。
authport=authport-value
指定用于输入表单身份验证的端口。 缺省值为 8080。

HDFS_READ函数返回一个表,其中输入文件中的每条记录对应一行。 HDFS_READ是一个通用表函数,这意味着返回表的列是在引用表时定义的,而不是在定义表时定义的。

示例1 :读取一个 HDFS 文件,其 URL 为 http://hdfssrv.svl.ibm.com:8080。 输入文件的分隔符为逗号。 使用默认授权端口。 输入文件中的记录有两个字段:一个 DECIMAL(8,3) 字段和一个 INTEGER 字段。
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: 读取一个 HDFS 文件,该文件的 URL 是成功Jaql查询输出写入的位置。 提交Jaql查询的JAQL_SUBMIT调用的返回字符串参数指定了该位置。
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);