2017-03-16 4 views
0

HDFS内の外部テーブルとHAWQの内部テーブルを作成しました。私はエラーエラー:タイプ文字(50)の値が長すぎます

の下に取得していますジョブを実行するには>内部テーブル(HAWQ)

を - >外部表(PXF HAWQ) - 私は プロセスフローは SQLSERVERのようなものですETLプロセスのための才能を使用して、SQL Serverからデータを取得しています

ERROR: value too long for type character(50) (seg0 slice1 phds01.aa.com:40000 pid=297176) Detail: External table podetails_stg0, line 17 of pxf://PHD-HA/test/PoDetails_stg0.csv?profile=HdfsTextSimple, column StockDes

どのようにこのエラーを解決する必要がありますか?

答えて

1

HDFSに入れようとしている文字列は、50文字以上です。 次の2つの選択肢があります:

  • Trucate StringHandling.LEFT(yourcolumn,50)

  • と第50 caracterでcolumアルター表を、さらに文字(100)など、あなたのコラムを大きくします。

+0

ありがとう、私は文字列のサイズが 'StockDes'列のレコードに対して30以下であることを確認しましたが、まだエラーが発生しています – vkumar

0

これは主にデータに関連するエラーです。データには、改行、コンマなどの多くの特殊文字が含まれています。これにより、mssqlserverからHDFS内のCSVにデータをコピーしながら、データが別の列に移動します。 データをフェッチする際に特殊文字をソースレベルでフィルタリングすることで、この問題を解決する最善の方法です。

関連する問題