import polars as pl
import fsspec
# The exact command to create the filesystem doesn't matter so long as it's a filesystem object.
azfs = fsspec.filesystem('abfss', connection_string="lgkjsklgjklfherirtguyshasdfkj")
def write_pq(self, REMOTE_PATH, **kwargs):
with azfs.open(REMOTE_PATH, "wb") as file_pointer:
self.write_parquet(file_pointer, **kwargs)
pl.DataFrame.write_pq=write_pq
为了保持一致性,你也可以这样做一个阅读器:
def read_pq(REMOTE_PATH, **kwargs):
with azfs.open(REMOTE_PATH, "rb") as file_pointer:
pl.read_parquet(file_pointer, **kwargs)
pl.read_pq=read_pq
2条答案
按热度按时间balp4ylt1#
我不能让它直接与Polars一起工作,但它可以与PyArrow一起工作。
以下是您可以执行的操作:
3ks5zfa02#
有什么东西与write_parquet等价吗?
号
我所做的是在我自己的读写方法中将路径Map到
pl
名称空间上,以进行快捷连接处理。假设您使用
adlfs
或fsspec
创建了一个文件系统(前者只是后者的 Package )。因此,您的样板文件可能会变成:
为了保持一致性,你也可以这样做一个阅读器:
Monkey将
read_pq
定义修补为pl
并没有真正给予你任何东西,除非你要制作一个以上的包并加载它,而不是直接加载polars,这就是我所做的,所以如果你调用你的包mypolars
,那么在你未来的脚本中,你会做from mypolars import pl
,而不是import polars as pl
。从那时起,您可以只执行
df.write_pq("your blob path")
,并可以使用df=pl.read_pq("your blob path")
读取它由于我们在调用中使用了
**kwargs
,您仍然可以使用本机read_parquet
和write_parquet
可用的任何其他参数