问题标签 [pyarrow]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
pandas - 使用 load_table_from_dataframe() 存储具有日期时间对象的数据帧时的架构冲突
我正在尝试将 Pandas 中DataFrame
的数据加载到 BigQuery 表中。有DataFrame
一个 dtype 列datetime64[ns]
,当我尝试使用存储 df 时load_table_from_dataframe()
,我得到
google.api_core.exceptions.BadRequest:400 提供的架构与表 [表名] 不匹配。字段 compute_triggered_time 已将类型从 DATETIME 更改为 TIMESTAMP。
该表具有读取的模式
在 中DataFrame
,computation_triggered_time
是一datetime64[ns]
列。当我从 CSV 读取原件DataFrame
时,我将其从文本转换为日期时间,如下所示:
笔记:
该.values.astype('datetime64[ms]')
部分是必要的,因为load_table_from_dataframe()
使用 PyArrow 序列化 df 并且如果数据具有纳秒精度则失败。错误类似于
[...] 从时间戳 [ns] 转换为时间戳 [ms] 会丢失数据
python - 使用 pyarrow 和 json.dump 将 json 文件保存到 hdfs
我正在尝试使用 pyarrow 将 json 文件保存在 HDFS 中。这是我的代码的样子。
这给出了一个错误说TypeError: a bytes-like object is required, not 'str'
当我尝试使用 joblib.dump 或 pickle.dump 时,它可以工作,但不会以 json 格式保存。有没有办法使用pyarrow将json文件直接保存到hdfs。
parquet - pyarrow 有没有办法查询 parquet 数据集分区的值?
例如,我有一个如下所示的数据集:
并将其加载为dataset = pyarrow.parquet.ParquetDataset('./dataset')
如何在a
不将整个数据集读入内存的情况下查询分区“”的可用条目?谢谢~
arrays - 是否有 pyarrow 数组生成器
我正在寻找一个 python 箭头数组生成器。
我的用例如下:我有“行”记录,我想将其转换为箭头“列”表。对于我记录中的每个字段,我想创建一个相关类型的箭头数组。但我不想使用 python 数组作为中间表示,因为我担心它可能会浪费。
这是我的用例的说明:
apache-spark - 如何本机读取羽毛/箭头文件?
我有羽毛格式文件sales.feather
,用于在python
和 R之间交换数据。
在 RI 中使用以下命令:
在python中,我使用了:
将数据从该文件加载到内存到运行的 Spark 实例的最佳方法是什么pyspark
?我还想控制pyspark.StorageLevel
从羽毛中读取的数据。
我不想使用 pandas 来加载数据,因为它会为我的 19GB 羽毛文件产生段错误,该文件是从 45GB csv 创建的。
python - Pyspark pyarrow pandas_udf - GROUPED_MAP 返回数据帧,IntegerType 和 TimestampType 为 None NaN
最好的
目前我正在尝试使用 pyspark pandas_udf,但不幸的是,当我返回包含以下内容的 DataFrame 时遇到了一些问题:NA、None 或 NaNs。如果我使用的是 FloatType,那么结果是好的,但是一旦我使用 IntegerType、TimestampType 等......我收到一个错误并且它不再工作了。
以下是一些有效和无效的示例:
What does work?
示例 1)
结果:
例 2)
如果我们将 Age_lag 的类型更改为IntegerType ()并用 -1 填充 Na,那么我们仍然有一个有效的结果(没有 NaN)
结果:
什么不起作用?
例 3)
如果我们省略 .fillna(-1)那么我们会收到下一个错误
结果:pyarrow.lib.ArrowInvalid:浮点值被截断
例 4)
最后但并非最不重要的一点是,如果我们只是将一个静态数据帧发回 age_lag 包含None,那么它也不起作用。
问题:
- 你如何处理这个问题?
- 这是一个糟糕的设计吗?
- (因为我可以想象 1000 个我确实想返回 NaN 和 None 的情况)
- 我们真的必须填写所有缺失值吗?然后再把它们换回来?还是使用浮点数而不是整数?ETC?
- 这会在不久的将来得到解决吗?(因为 pandas_udf 很新)
python - 从 pandas DataFrame 加载 pyarrow parquet 时保留索引
我需要将带有字典值的字典转换为镶木地板,我的数据如下所示:
{"KEY":{"2018-12-06":250.0,"2018-12-07":234.0}}
我正在转换为 pandas 数据框,然后写入 pyarrow 表:
我最终得到的数据只有日期和值,但没有字典的键:
我需要的是也有数据的关键:
c++ - 如何在 C++ 中的镶木地板文件中保存时间戳并在 Python Pandas 中加载它?
我Apache Arrow
在 C++ 中使用将时间序列集合保存为 parquet 文件,并使用 python 将 parquet 文件加载为Pandas
Dataframe
. 该过程适用于除Date64Type
. 我在 C++ 中保存纪元时间,当在熊猫中加载它时,时间信息会丢失。
例如对于 boost posix time : 2018-04-01T20:11:17.112Z
,纪元时间 (in int64_t
) 是1522613477112000
,但是当我将 parquet 文件保存为 ( Date64Type
) 并加载到 pandas 时,结果是2018-04-01
并且时间信息丢失了。在镶木地板文件中保存时间戳的正确方法是什么?
python - Pyarrow.lib.Schema 与 pyarrow.parquet.Schema
当我尝试跨多个分区的镶木地板文件加载时,由于缺少用空值填充架构的数据,某些架构被无效推断。我认为在 pyarrow.parquet.ParquetDataset 中指定模式可以解决此问题,但我不知道如何构建正确的 pyarrow.parquet.Schema 类型的模式。一些示例代码:
和错误:
但是我在文档( https://arrow.apache.org/docs/python/generated/pyarrow.parquet.ParquetDataset.html )中找不到任何关于如何构建 pyarrow.parquet.Schema 模式的文档并且有只做了一个 pyarrow.lib.Schema ,它给出了上述错误。
pandas - Is there a way to force spark workers to use a distributed numpy version instead of the one installed on them?
The situation is as follows: working on a enterprise cluster with spark 2.3, I want to run pandas_udf which requires pyarrow which requires numpy 0.14 (AFAIK). Been able to distribute pyarrow (I think, no way of verifying this 100%):
The zip is the result of pip install to dir and zipping it.
But pyarrow does not play along with the nodes numpy 0.13, I guess I could try and distribute a full env to all nodes, but my question is, is there a way to avoid this and make the node use a diffrent numpy (which is already distributed in the pyarrow zip)
Thanks