0

ソースシステムとターゲットシステムがあります。talend ツールを使用して、SQL サーバー 2012 から Pivotal Hadoop (PHD 3.0) バージョンにデータをインポートしようとしています。

取得エラー:

ERROR: extra data after last expected column  (seg0 slice1 datanode.domain.com:40000 pid=15035)
  Detail: External table pick_report_stg0, line 5472 of pxf://masternnode/path/to/hdfs?profile=HdfsTextSimple: "5472;2016-11-28 08:39:54.217;;2016-11-15 00:00:00.0;SAMPLES;0005525;MORGAN -EVENTS;254056;1;IHBL-NHO..."

私たちは試しました

[hdfs@mdw ~]$ hdfs dfs -cat /path/to/hdfs|grep 3548 として BAD 行を特定しました。

3548;2016-11-28 04:21:39.97;;2016-11-15 00:00:00.0;SAMPLES;0005525;MORGAN -EVENTS;254056;1;IHBL-NHO-13OZ-01;0;ROC NATION; NH;2016-11-15 00:00:00.0;2016-11-15 00:00:00.0;;2.0;11.99;SA;SC01;NH02;EA;1;F2;NEW PKG ONLY PLEASE!! BY NOON

外部表とFormat句の構造

CREATE EXTERNAL TABLE schemaname.tablename
(
"ID" bigint,
  "time" timestamp without time zone,
  "ShipAddress4" character(40),
  "EntrySystemDate" timestamp without time zone,
  "CorpAcctName" character(40),
  "Customer" character(7),
  "CustomerName" character(30),
  "SalesOrder" character(6),
  "OrderStatus" character(1),
  "MStockCode" character(30),
  "ShipPostalCode" character(9),
  "CustomerPoNumber" character(30),
  "OrderDate" timestamp without time zone,
  "ReqShipDate" timestamp without time zone,
  "DateValue" timestamp without time zone,
  "MOrderQty" numeric(9,0),
  "MPrice" numeric(9,0),
  "CustomerClass" character(2),
  "ProductClass" character(4),
  "ProductGroup" character(10),
  "StockUom" character(3),
  "DispatchCount" integer,
  "MWarehouse" character(2),
  "AlphaValue" varchar(100)
)
 LOCATION (
    'pxf://path/to/hdfs?profile=HdfsTextSimple'
)
 FORMAT 'csv' (delimiter ';' null '' quote ';')
ENCODING 'UTF8';

所見 :余分なデータの原因となる余分なセミコロンが表示されました。しかし、私はまだ正しいフォーマット句を提供できません。余分なデータ列エラーを削除する方法を教えてください。

どのフォーマット句を使用すればよいですか。

それについての助けは大歓迎です!

4

1 に答える 1

2

ENCODING 句の後に次を外部テーブル定義に追加すると、この問題が原因で少数の行が失敗する問題を解決するのに役立ちます。

LOG ERRORS INTO my_err_table SEGMENT REJECT LIMIT 1 PERCENT;

この構文のリファレンスは次のとおりです: http://gpdb.docs.pivotal.io/4320/ref_guide/sql_commands/CREATE_EXTERNAL_TABLE.html

于 2016-11-28T14:21:27.953 に答える