【问题标题】:Create external table in Greenplum using parquet file stored in s3使用存储在 s3 中的 parquet 文件在 Greenplum 中创建外部表
【发布时间】:2018-06-28 10:06:44
【问题描述】:

我正在尝试在 Amazon ec2 集群上的 Greenplum 数据库中创建一个外部表。我的源文件是 parquet 并存储在 s3 中。 我的问题是:

我应该使用什么协议从 parquet 文件中读取数据?

如果我使用文件格式为“Parquet”的“s3://”,如下所示:

CREATE EXTERNAL TABLE rp2 (id text, fname text, lname text, mname text) LOCATION ('s3://location.parquet config=./s3/s3.config')

我收到以下错误:

ERROR:  unexpected end of file  (seg0 slice1 IP:port pid=xxx)

如果我选择 gphdfs:// 协议为:

CREATE EXTERNAL TABLE rp2 (id text, fname text, lname text, mname text) LOCATION ('gphdfs:location.parquet config=./s3/s3.config') FORMAT 'PARQUET';

我收到以下错误:

ERROR:  external table gphdfs protocol command ended with error. Exception in thread "main" java.lang.IllegalArgumentException: Illegal input uri: gphdfs://locs.parquet config=./s3/s3.config  (seg0 slice1 IP:Port pid=pid)

在这方面的任何帮助将不胜感激。

【问题讨论】:

标签: amazon-s3 parquet greenplum external-tables


【解决方案1】:

您可以使用PXF 在 S3 上读取 parquet 文件

例子:

CREATE EXTERNAL TABLE pxf_ext_tbl(name text, orders int)
  LOCATION ('pxf://S3_BUCKET/dir/file.parquet?PROFILE=s3:parquet&SERVER=s3srvcfg)
 FORMAT 'CUSTOM' (FORMATTER='pxfwritable_import');

【讨论】:

    最近更新 更多