Bodo-inc / Bodo-Pandas-Collaboration

Shared repo used to track Pandas issues noted by Bodo.
0 stars 0 forks source link

Support Iceberg in Pandas #9

Open ehariri opened 2 years ago

ehariri commented 2 years ago

Apache Iceberg is an open source table format designed for efficiently reading from large datasets. By leveraging detailed statistics information and hidden partitioning, reading becomes efficient for extremely large datasets, even up to pedabytes according to the author.

As a result, there is a lot of interest in Iceberg inside of the Data Engineering community and many people seem willing/eager to try running their production workloads using Iceberg. To help meet this growing demand, we believe that Pandas should be able to read DataFrames from datasets using Iceberg format.

Bodo can be used underneath Pandas to read Iceberg, probably through pd.read_sql/pd.read_sql_table.

datapythonista commented 2 years ago

Personally, I think it's limiting and not very scalable if pandas has to support every format. I think pandas should provide a standard way to load I/O plugins, and this (and many other readers/writers) should be implemented as third-party projects. Not only maintaining them will be easier and more efficient, but having competing options for certain formats would be beneficial. Like a csv format that makes loads of assumptions and making things easier for users, and another that requires more programming but is faster and safer.

mroeschke commented 2 years ago

If there exists a python wrapper to read iceberg via read_sql, I think it would be wise to develop an interface in pandas to for users to plug-and-play any "SQL" engine. https://github.com/pandas-dev/pandas/issues/41728 https://github.com/pandas-dev/pandas/issues/36893

ehsantn commented 2 years ago

Yes, this could be a plugin. From the user perspective, something like pd.read_sql_table("table1", "iceberg+thrift://...", "my_schema") should just work.

https://docs.bodo.ai/2022.7/file_io/#iceberg-section