HDP 2.4 および HAWQ 2.0 の使用
HDFS パスに保持されている json データを HAWQ 外部テーブルに読み込みたいですか?
以下の手順に従って、新しい json プラグインを PXF に追加し、データを読み取ります。
https://bintray.com/big-data/maven/pxf-plugins/view#からプラグイン「json-pxf-ext-3.0.1.0-1.jar」をダウンロードし ます
プラグインをパス /usr/lib/pxf にコピーします。
外部テーブルの作成
CREATE EXTERNAL TABLE ext_json_mytestfile ( created_at テキスト、id_str テキスト、テキスト テキスト、ソース テキスト、「user.id」INTEGER、「user.location」テキスト、「coordinates.type」テキスト、「coordinates.coordinates[0]」 DOUBLE PRECISION、座標.座標[1]" DOUBLE PRECISION) LOCATION ('pxf://localhost:51200/tmp/hawq_test.json' '?FRAGMENTER=org.apache.hawq.pxf.plugins.hdfs.HdfsDataFragmenter' '&ACCESSOR=org. apache.hawq.pxf.plugins.json.JsonAccessor''&RESOLVER=org.apache.hawq.pxf.plugins.json.JsonResolver''&ANALYZER=org.apache.hawq.pxf.plugins.hdfs.HdfsAnalyzer') FORMAT 'CUSTOM ' (FORMATTER='pxfwritable_import') LOG ERRORS INTO err_json_mytestfile SEGMENT REJECT LIMIT 10 ROWS;
上記の DDL テーブルを実行すると、正常に作成されます。その後、選択クエリを実行しようとしています
select * from ext_json_mytestfile;
しかし、エラーが発生しています: -
エラー: 'localhost:51200' からのリモート コンポーネント エラー (500): タイプ例外レポート メッセージ java.lang.ClassNotFoundException: org.apache.hawq.pxf.plugins.json.JsonAccessor の説明 サーバーで内部エラーが発生したため、実行できませんでしたこのリクエスト。例外 javax.servlet.ServletException: java.lang.ClassNotFoundException: org.apache.hawq.pxf.plugins.json.JsonAccessor (libchurl.c:878) (seg4 sandbox.hortonworks.com:40000 pid=117710) (dispatcher.c :1801) 詳細: 外部テーブル ext_json_mytestfile
どんな助けでも大歓迎です。