Создайте внешнюю таблицу в Greenplum, используя файл паркета, хранящийся в s3 - PullRequest
0 голосов
/ 28 июня 2018

Я пытаюсь создать внешнюю таблицу в базе данных Greenplum на кластере Amazon ec2. Мой исходный файл паркетный и хранится в s3. Мой вопрос:

Какой протокол мне следует использовать для считывания данных из файла паркета?

Если я использую «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)

Любая помощь в этом отношении будет высоко оценена.

1 Ответ

0 голосов
/ 12 марта 2019

Вы можете прочитать файл паркета на S3, используя PXF

Пример:

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');

...