gpt4 book ai didi

python - 在 linux 机器中读取 parquet 文件

转载 作者:行者123 更新时间:2023-12-05 07:31:25 47 4
gpt4 key购买 nike

我试图在 python 中读取 parquet 文件。我使用了 parquet 和 json 导入。我使用了以下代码,因为我不想使用 Pandas 。

with open("test.parquet") as fo:
for row in parquet.DictReader(fo):
print(json.dumps(row))

这似乎运作良好。我想在 R 中实现相同的功能,所以我尝试使用“reticulate”在 R 中使用 python 函数。我使用了以下代码:

library(reticulate)
py <- import_builtins()
pq <- import("parquet")
js <- import("json")

with(py$open("test.parquet") %as% pq_file, {
for (val in pq$DictReader(pq_file)) {
print(js$dumps(val))}})

因为我只是在尝试,所以我尝试了不同的东西,并且遇到了不同的错误。对于上面的代码,我得到了这个。

Error in for (val in pq$DictReader(pq_file)) { : invalid for() loop sequence

我也试过这个:

with(py$open("test.parquet") %as% pq_file, {
for (val in 1:4) {
print(js$dumps(pq$DictReader(pq_file)$keys()[val]))}})

和错误:

AttributeError: 'generator' object has no attribute 'keys'

我正在尝试使用 reticulate 来读取 R 中的 parquet 文件。或者以任何其他方式在 R 中读取 Parquet 文件。我根本不想使用 Pandas 。我也试过pyarrow,但是需要pandas来干扰

如果我可以在 R 中将 python 与 Context 或 For 循环一起使用(我认为这不可行,但以防万一),我认为就可以了。如果有人对此有任何了解。让我知道。

谢谢

最佳答案

如果您不介意使用 Spark,并且只想在不使用 Pandas 的情况下以任何方式读取 R 中的 parquet 文件,您可以使用 sparklyr 包和 轻松读取它spark_read_parquet 函数。

这里是它的使用引用:https://spark.rstudio.com/reference/spark_read_parquet/

以下对我来说工作正常(Ubuntu 18.04):

library(sparklyr)

spark_conn <- spark_connect(master = "local")

data_frame <- collect(spark_read_parquet(spark_conn, "my_parquet", "~/data/my_parquet.parquet"))

spark_disconnect(spark_conn)

要使其正常工作,请务必同时安装 sparklyrdplyr

install.packages(dplyr)
install.packages(sparklyr)

如果您需要配置 Spark,加载 sparklyr 后,使用 spark_install() 有一个简单的界面(前提是您使用 Java 8)。您可以使用

轻松降级 Java
sudo apt install openjdk-8-jdk
sudo update-alternatives --config java ==> select the option to use Java 8

关于python - 在 linux 机器中读取 parquet 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51807632/

47 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com