我正在使用 Ibis 连接到 Cloudera 数据平台系统上的表。对于一张桌子,我得到一个简单地说“日期”的例外。我可以毫无问题地访问其他表。我在 Hue 上检查了有问题的表格,发现一列具有“日期”类型。
有没有办法在宜必思使用这张桌子?
另一个讨论提到Hive 有 date 类型,但 Impala 没有,这可能是这里的问题。我正在寻找一种允许我继续使用 Ibis 并且不需要修改数据库的解决方案。我能够访问 pyodbc 中的表并使用 SQL 命令导出到 pandas 数据框。
详情如下:
我正在使用 Ibis 2.0,python 3.8(我对 Ibis 1.4 有同样的问题)
连接命令:
client = ibis.impala.connect(host=CDP_host,port=CDP_port,database=CDP_db,use_ssl=True,kerberos_service_name='impala',auth_mechanism="GSSAPI")
异常命令和消息:
client.table('pangolin') ------------------------------------------ --------------------------------- ----> 1 个客户端中的异常回溯(最后一次调用)。表('穿山甲')
~/Software/miniconda3/envs/ibis38/lib/python3.8/site-packages/ibis/backends/base/sql/ init .py in table(self, name, database) 39 """ 40qualified_name = self._fully_qualified_name (name, database) ---> 41 schema = self.get_schema(qualified_name) 42 node = self.table_class(qualified_name, schema, self) 43 return self.table_expr_class(node)
~/Software/miniconda3/envs/ibis38/lib/python3.8/site-packages/ibis/backends/impala/ init .py in get_schema(self, table_name, database) 488 489 个名称,类型 = zip(*pairs) - -> 490 ibis_types = [udf.parse_type(type.lower()) 用于输入类型] 491 名称 = [name.lower() 用于名称中的名称] 492
~/Software/miniconda3/envs/ibis38/lib/python3.8/site-packages/ibis/backends/impala/ init .py in (.0) 488 489 个名称,类型 = zip(*pairs) --> 490 ibis_types = [udf.parse_type(type.lower()) 用于输入类型] 491 名称 = [name.lower() 用于名称中的名称] 492
~/Software/miniconda3/envs/ibis38/lib/python3.8/site-packages/ibis/backends/impala/udf.py in parse_type(t) 340 return ValueError(t) 341 else: --> 342 raise Exception(电话:343 344
例外:日期
-------------------------------------------------- ------------------------- ----> 1 client.table('pangolin').columns 中的异常回溯(最近一次调用最后一次)
~/Software/miniconda3/envs/ibis38/lib/python3.8/site-packages/ibis/backends/base/sql/ init .py in table(self, name, database) 39 """ 40qualified_name = self._fully_qualified_name (name, database) ---> 41 schema = self.get_schema(qualified_name) 42 node = self.table_class(qualified_name, schema, self) 43 return self.table_expr_class(node)
~/Software/miniconda3/envs/ibis38/lib/python3.8/site-packages/ibis/backends/impala/ init .py in get_schema(self, table_name, database) 488 489 个名称,类型 = zip(*pairs) - -> 490 ibis_types = [udf.parse_type(type.lower()) 用于输入类型] 491 名称 = [name.lower() 用于名称中的名称] 492
~/Software/miniconda3/envs/ibis38/lib/python3.8/site-packages/ibis/backends/impala/ init .py in (.0) 488 489 个名称,类型 = zip(*pairs) --> 490 ibis_types = [udf.parse_type(type.lower()) 用于输入类型] 491 名称 = [name.lower() 用于名称中的名称] 492
~/Software/miniconda3/envs/ibis38/lib/python3.8/site-packages/ibis/backends/impala/udf.py in parse_type(t) 340 return ValueError(t) 341 else: --> 342 raise Exception(电话:343 344
例外:日期