2016-11-15 10 views
0

私はハイブに行く、と私はそのコマンドを使用すると、私はSparkJobファイル名

INSERT OVERWRITE TABLE ex_tb.ex_orc_tb 
select *, SUBSTR(INPUT__FILE__NAME,60,4), CONCAT_WS('-', SUBSTR(INPUT__FILE__NAME,71,4), SUBSTR(INPUT__FILE__NAME,75,2), SUBSTR(INPUT__FILE__NAME,77,2)) 
from ex_db.ex_ext_tb 

...のようなものが含まれてHQLクエリを、使用している、それが正常に動作します。私はpysparkに入れて

、hivecontextコマンド、代わりに私がエラーを取得...

pyspark.sql.utils.AnalysisException: u"cannot resolve 'INPUT__FILE__NAME' given input columns: [list_name, name, day, link_params, id, template]; line 2 pos 17" 

これはあるかもしれない理由を任意のアイデア?

答えて

2

INPUT__FILE__NAMEはHive固有の仮想列であり、Sparkではサポートされていません。

スパークは、同じように動作するはずinput_file_name機能提供:

SELECT input_file_name() FROM df 

を、それは2.0スパーク以降PySparkで正常に動作することが必要です。