2016-07-07 1 views
1
2016-07-06 19:39:09,153:ERROR:root:Compiler <sqlalchemy.sql.compiler.GenericTypeCompiler object at 0x10c75d150> can't render element of type <class 'impala.sqlalchemy.STRING'> 
Traceback (most recent call last): 
    File "/Users/user_name/.virtualenvs/caravel27/lib/python2.7/site-packages/caravel/models.py", line 771, in fetch_metadata 
    datatype = "{}".format(col.type).upper() 
    File "/Users/user_name/.virtualenvs/caravel27/lib/python2.7/site-packages/sqlalchemy/sql/type_api.py", line 481, in __str__ 
    return unicode(self.compile()).\ 
    File "/Users/user_name/.virtualenvs/caravel27/lib/python2.7/site-packages/sqlalchemy/sql/type_api.py", line 468, in compile 
    return dialect.type_compiler.process(self) 
    File "/Users/user_name/.virtualenvs/caravel27/lib/python2.7/site-packages/sqlalchemy/sql/compiler.py", line 261, in process 
    return type_._compiler_dispatch(self, **kw) 
    File "/Users/user_name/.virtualenvs/caravel27/lib/python2.7/site-packages/sqlalchemy/sql/visitors.py", line 79, in _compiler_dispatch 
    raise exc.UnsupportedCompilationError(visitor, cls) 

同様の問題が報告されていますhereカラベルをハイブサーバーに接続すると、表をロードするときにエラーがスローされる

caravel runserver -dを使用してカラベルを実行しインストールします。私は、これはあなたがエラーを複製することができる方法であるcaravel

経由sqlalchemyを用いた場合のbind=engineを渡す方法がわからないしかし

。次に、hive2データベースをcaravelに追加します。これを行うには、証拠が必要です。インストール後、これをsqlAlchemyURL impala://somehostname.compute.amazonaws.com:10000/database_name?auth_mechanism=‌​PLAINとして使用します。テスト接続はSeems OKを返す必要があります。 Caravelはdatabase_nameのすべてのテーブルも検出できるはずです。しかし、テーブルを追加すると、caravelはすべての列をUNKNOWN型として識別します。その後、caravelによって投稿されたログを見て、上記のエラーを記録する必要があります。この経由で解決

+0

をコミット質問をデバッグするために尋ねるとき(http://stackoverflow.com/help/mcve)[、最小限の完全かつ検証可能な例]を含めてください。つまり、エラーを生成する小さな例を作成します。 –

+0

私は 'caravel runserver -d'を使ってカーネルをセットアップします。次に、impylaを使ってhive2データベースを追加しました。これは、sqlAlchemyURL 'impala://somehostname.compute.amazonaws.com:10000/database_name?auth_mechanism = PLAIN'に挿入したアドレスです。テスト接続は 'Seems OK'を返します。 Caravelは、database_name内のすべてのテーブルを検出することもできます。しかし、テーブルを追加すると、caravelはすべての列をUNKNOWN型として識別します。それから私はcaravelによって投稿されたログを見て、上記のエラーがログに記録されます。 – Sasaram

答えて

関連する問題