Skip to content

Can't list tables from pyiceberg #10

@danthelion

Description

@danthelion

Hey! Tried to see if I could query the default tables from pyiceberg, but I couldn't get further than listing namespaces (which does work), any ideas?

from pyiceberg.catalog import load_catalog

catalog = load_catalog('default', **{
    'uri': 'http://127.0.0.1:8080/api/2.1/unity-catalog/iceberg',
})

print(catalog.list_namespaces())

print(catalog.list_tables(namespace='unity'))

results in

[('unity',)]

Traceback (most recent call last):
  File "python3.11/site-packages/pyiceberg/catalog/rest.py", line 513, in list_tables
    response.raise_for_status()
  File "python3.11/site-packages/requests/models.py", line 1024, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 500 Server Error: Internal Server Error for url: http://127.0.0.1:8080/api/2.1/unity-catalog/iceberg/v1/namespaces/unity/tables

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "unitycatalog-dev/main.py", line 9, in <module>
    print(catalog.list_tables(namespace='unity'))
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "unitycatalog-dev/.venv/lib/python3.11/site-packages/pyiceberg/catalog/rest.py", line 515, in list_tables
    self._handle_non_200_response(exc, {404: NoSuchNamespaceError})
  File "unitycatalog-dev/.venv/lib/python3.11/site-packages/pyiceberg/catalog/rest.py", line 382, in _handle_non_200_response
    raise exception(response) from exc
pyiceberg.exceptions.ServerError: RESTError 500: Received unexpected JSON Payload: {"error_code":"INTERNAL","details":[{"reason":"INTERNAL","metadata":{},"@type":"google.rpc.ErrorInfo"}],"stack_trace":"[io.unitycatalog.server.service.IcebergRestCatalogService.listTables(IcebergRestCatalogService.java:210), com.linecorp.armeria.internal.server.annotation.AnnotatedService.invoke(AnnotatedService.java:382), com.linecorp.armeria.internal.server.annotation.AnnotatedService.serve0(AnnotatedService.java:298), com.linecorp.armeria.internal.server.annotation.AnnotatedService.serve(AnnotatedService.java:272), com.linecorp.armeria.internal.server.annotation.AnnotatedService.serve(AnnotatedService.java:78), com.linecorp.armeria.internal.server.annotation.AnnotatedService$ExceptionHandlingHttpService.serve(AnnotatedService.java:536), com.linecorp.armeria.server.HttpServerHandler.serve0(HttpServerHandler.java:463), com.linecorp.armeria.server.HttpServerHandler.handleRequest(HttpServerHandler.java:398), com.linecorp.armeria.server.HttpServerHandler.channelRead(HttpServerHandler.java:281), io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444), io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420), io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412), com.linecorp.armeria.server.Http1RequestDecoder.channelRead(Http1RequestDecoder.java:282), io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442), io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420), io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412), com.linecorp.armeria.server.HttpServerUpgradeHandler.channelRead(HttpServerUpgradeHandler.java:227), io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444), io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420), io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412), io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436), io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346), io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318), io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251), io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442), io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420), io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412), io.netty.handler.logging.LoggingHandler.channelRead(LoggingHandler.java:280), io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442), io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420), io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412), io.netty.handler.flush.FlushConsolidationHandler.channelRead(FlushConsolidationHandler.java:152), io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442), io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420), io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412), io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410), io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440), io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420), io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919), io.netty.channel.kqueue.AbstractKQueueStreamChannel$KQueueStreamUnsafe.readReady(AbstractKQueueStreamChannel.java:544), io.netty.channel.kqueue.AbstractKQueueChannel$AbstractKQueueUnsafe.readReady(AbstractKQueueChannel.java:387), io.netty.channel.kqueue.KQueueEventLoop.processReady(KQueueEventLoop.java:218), io.netty.channel.kqueue.KQueueEventLoop.run(KQueueEventLoop.java:296), io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997), io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74), io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30), java.base/java.lang.Thread.run(Thread.java:840)]","message":"invalid namespace unity"}, errors: Field required

Process finished with exit code 1

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions