2017-11-22 2 views
0

파티션이있는 임베디드 테이블에 df를 삽입하려고합니다. CentOS를 실행하는 Edge 노드 컴퓨터에서 Windows 10 컴퓨터 및 스파이더 3.6.2에서 스파이더 3.2.4를 사용하여 원격 커널에서이 작업을 실행하고 있습니다. 내가 오류 다음 얻을Ibis python을 사용하여 impala 테이블에 데이터 삽입

는 :

Writing DataFrame to temporary file 
Writing CSV to: /tmp/ibis/pandas_0032f9dd1916426da62c8b4d8f4dfb92/0.csv 
Traceback (most recent call last): 

File "/usr/local/lib/python3.6/site-packages/IPython/core/interactiveshell.py", line 2910, in run_code 
exec(code_obj, self.user_global_ns, self.user_ns) 

File "", line 1, in 
insert = target_table.insert(df3) 

File "/usr/local/lib/python3.6/site-packages/ibis/impala/client.py", line 1674, in insert 
writer, expr = write_temp_dataframe(self._client, obj) 

File "/usr/local/lib/python3.6/site-packages/ibis/impala/pandas_interop.py", line 225, in write_temp_dataframe 
return writer, writer.delimited_table(path) 

File "/usr/local/lib/python3.6/site-packages/ibis/impala/pandas_interop.py", line 188, in delimited_table 
schema = self.get_schema() 

File "/usr/local/lib/python3.6/site-packages/ibis/impala/pandas_interop.py", line 184, in get_schema 
return pandas_to_ibis_schema(self.df) 

File "/usr/local/lib/python3.6/site-packages/ibis/impala/pandas_interop.py", line 219, in pandas_to_ibis_schema 
return schema(pairs) 

File "/usr/local/lib/python3.6/site-packages/ibis/expr/api.py", line 105, in schema 
return Schema.from_tuples(pairs) 

File "/usr/local/lib/python3.6/site-packages/ibis/expr/datatypes.py", line 109, in from_tuples 
return Schema(names, types) 

File "/usr/local/lib/python3.6/site-packages/ibis/expr/datatypes.py", line 55, in init 
self.types = [validate_type(typ) for typ in types] 

File "/usr/local/lib/python3.6/site-packages/ibis/expr/datatypes.py", line 55, in 
self.types = [validate_type(typ) for typ in types] 

File "/usr/local/lib/python3.6/site-packages/ibis/expr/datatypes.py", line 1040, in validate_type 
return TypeParser(t).parse() 

File "/usr/local/lib/python3.6/site-packages/ibis/expr/datatypes.py", line 901, in parse 
t = self.type() 

File "/usr/local/lib/python3.6/site-packages/ibis/expr/datatypes.py", line 1033, in type 
raise SyntaxError('Type cannot be parsed: {}'.format(self.text)) 

File "", line unknown 
SyntaxError: Type cannot be parsed: integer 

답변

0

오류 구조와 하둡 시스템의 보안으로 인해오고 있었다. 이비스 패키지는 temp_db & temp_hdfs_location을 각각 __ibis_tmp &/tmp/ibis /에 생성하려고합니다. 우리 시스템의 기본 위치는 root/system admin ...이 아닌 다른 사용자에게 열려 있기 때문에/tmp/ibis /에서 실제 db로 데이터를 가져올 때 insert 명령이 오류가 발생했습니다 (여전히 명확하지 않지만 __ibis_tmp dbase를 통해있을 수 있음). 일단 ibis 패키지에 대한 config_init.py 파일을 허용 된 임시 위치/db로 편집했습니다. 그것은 매력처럼 작동했습니다.

+0

또는 다음을 사용하십시오. ibis.config_init.impala_temp_hdfs_path_doc = sushant