2017-10-12 15 views
0

私はスキーマにinetタイプを使用するpostgresデータベース(9.2)を持っています。私はスパーク(1.6)でポストグルに書き込もうとしています。なぜSpark SqlはInetデータ型を除外しますか?

df.write.mode(mode).jdbc(db, table, props) 

私はdfにスキーマを適用しています。

context.createDataFrame(rdd, schema()) 

とによるスキーマの不一致にSPARK-13286に記載されているすべてのBatchUpdateExceptionのエラーを取得。スキーマは、Spark SQLデータ型を必要とするStructFieldのStructTypeです。既存のSpark SQLデータ型のいずれかでこの作業を行う方法はありますか?

答えて

1

なぜSpark SqlはInetデータ型を除外しますか?

現実的には、Sparkでは、異なるJDBCソース(RDBMSだけでなく)が使用するすべてのカスタムタイプをサポートすることはできません。

この方法を既存のSpark SQLデータ型のいずれかで使用する方法はありますか?

あなたはスパークによって消耗品であるタイプ、(テストしていない)にキャストするクエリを使用することができます。

spark.read.jdbc(url, "(SELECT CAST(inet_col AS TEXT) FROM table) AS t") 
関連する問題