Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x Python:将熊猫数据帧保存到拼花文件_Python 3.x_Hdfs_Parquet - Fatal编程技术网

Python 3.x Python:将熊猫数据帧保存到拼花文件

Python 3.x Python:将熊猫数据帧保存到拼花文件,python-3.x,hdfs,parquet,Python 3.x,Hdfs,Parquet,是否可以将熊猫数据帧直接保存到拼花地板文件中? 如果没有,建议的流程是什么 目的是能够将拼花地板文件发送给另一个团队,他们可以使用scala代码读取/打开该文件。谢谢 有一个名为fastparquet的包的相对较早的实现——它可能是您需要的一个很好的用例 或 或者,如果要使用某些文件选项,如行分组/压缩: write('outfile2.parq', df, row_group_offsets=[0, 10000, 20000], compression='GZIP', file_scheme

是否可以将熊猫数据帧直接保存到拼花地板文件中? 如果没有,建议的流程是什么


目的是能够将拼花地板文件发送给另一个团队,他们可以使用scala代码读取/打开该文件。谢谢

有一个名为fastparquet的包的相对较早的实现——它可能是您需要的一个很好的用例

或者,如果要使用某些文件选项,如行分组/压缩:

write('outfile2.parq', df, row_group_offsets=[0, 10000, 20000], compression='GZIP', file_scheme='hive')
支持存储数据帧:

import pyarrow

pyarrow.Table.from_pandas(dataset)

熊猫有一个核心功能
到_parquet()
。只需将数据帧写入拼花地板格式,如下所示:

df.to_parquet('myfile.parquet')
您仍然需要安装拼花库,如
fastparquet
。如果安装了多个拼花库,还需要指定要使用的引擎,否则将使用要安装的第一个引擎(如中所示)。例如:

df.to_parquet('myfile.parquet', engine='fastparquet')

这是一种适用于我的方法-类似于上述方法-但也选择规定压缩类型:

import pandas as pd 
设置测试数据帧

df = pd.DataFrame(data={'col1': [1, 2], 'col2': [3, 4]})
导入所需的拼花地板库(确保已安装,我使用:
$conda安装快速拼花地板

将数据框转换为拼花地板并保存到当前目录

df.to_parquet('df.parquet.gzip', compression='gzip')
将当前目录中的拼花地板文件读回数据框

pd.read_parquet('df.parquet.gzip')
输出:

    col1    col2
0    1       3
1    2       4

是的,这是可能的。下面是示例代码:

import pyarrow as pa
import pyarrow.parquet as pq

df = pd.DataFrame(data={'col1': [1, 2], 'col2': [3, 4]})
table = pa.Table.from_pandas(df, preserve_index=True)
pq.write_table(table, 'output.parquet')
是,熊猫支持以拼花格式保存数据框。 将数据框写入拼花地板的简单方法。 假设,
df
是数据帧。我们需要导入以下库

import pyarrow as pa
import pyarrow.parquet as pq
首先,将数据帧
df
写入
pyarrow
表中

# Convert DataFrame to Apache Arrow Table
table = pa.Table.from_pandas(df_image_0)
第二,将
表格
写入
parquet
文件,比如
file\u name.parquet

import fastparquet
# Parquet with Brotli compression
pq.write_table(table, 'file_name.parquet')
注意:拼花文件可以在写入时进一步压缩。以下是流行的压缩格式。
  • Snappy(默认值,不需要参数)
  • gzip
  • 布罗特利
弹性压缩实木地板

 pq.write_table(table, 'file_name.parquet')
pq.write_table(table, 'file_name.parquet', compression='GZIP')
pq.write_table(table, 'file_name.parquet', compression='BROTLI')
GZIP压缩实木地板

 pq.write_table(table, 'file_name.parquet')
pq.write_table(table, 'file_name.parquet', compression='GZIP')
pq.write_table(table, 'file_name.parquet', compression='BROTLI')
Brotli压缩实木复合地板

 pq.write_table(table, 'file_name.parquet')
pq.write_table(table, 'file_name.parquet', compression='GZIP')
pq.write_table(table, 'file_name.parquet', compression='BROTLI')
不同拼花地板形式的比较

参考:

另一个团队是否使用Spark或其他Scala工具?如果你有
pyspark
你可以做一些事情,比如当我们不使用它的任何东西时,为什么我们需要导入它?在DataRicks 7.1(python 3.7.5)中运行这个,我得到的“DataFrame”对象没有属性“toParquet”。嗯,这似乎是一个简单的问题:没有toParquet,不。它是为了“parquet”。干杯