如何读取本地存储在Python Pandas中的ORC文件?

时间:2018-10-19 09:33:20

标签: python pandas pyspark data-science orc

我可以认为ORC文件类似于具有列标题和包含数据的行标签的CSV文件吗?如果是这样,我能以某种方式将其读入一个简单的熊猫数据框吗?我对Hadoop或Spark之类的工具并不熟悉,但是是否仅为了查看Python中本地ORC文件的内容就必须了解它们吗?

文件名是someFile.snappy.orc

我可以在线看到spark.read.orc('someFile.snappy.orc')有效,但是即使在import pyspark之后,它也会引发错误。

3 个答案:

答案 0 :(得分:2)

我找不到任何不错的选择,有一些无效的项目试图包装Java阅读器。但是,pyarrow确实有一个ORC阅读器,不需要您使用pyspark。有点限制,但是可以用。

import pandas as pd
import pyarrow.orc as orc

with open(filename) as file:
    data = orc.ORCFile(file)
    df = data.read().to_pandas()

答案 1 :(得分:0)

ORC与AVRO和PARQUET一样,是专门为海量存储而设计的格式。您可以将它们“像csv一样”来考虑,它们都是包含数据的文件,具有特定的结构(不同于csv或json!)。

在您的环境授予Hive支持后,使用pyspark应该很容易reading an orc file。 回答您的问题,我不确定在没有Hive的本地环境中您是否能够阅读它,但我从未做到(您可以使用以下代码进行快速测试):

  

加载ORC文件,将结果作为DataFrame返回。

     

注意:当前ORC支持仅与Hive支持一起提供。

     

>>> df = spark.read.orc('python / test_support / sql / orc_partitioned')

Hive是一个数据仓库系统,它允许您像传统的关系数据库一样通过Map-Reduce在HDFS(分布式文件系统)上查询数据(创建类似SQL的查询,不支持所有标准SQL的100%功能!)。

编辑:尝试以下操作创建一个新的Spark会话。不客气,但是我建议您遵循许多PySpark教程之一,以了解这个“世界”的基础。一切都会变得更加清晰。

import findspark
findspark.init()
from pyspark.sql import SparkSession
spark = SparkSession.builder.appName('Test').getOrCreate()

答案 2 :(得分:0)

如果 FailureReportingDeployment: Type: AWS::ApiGateway::Deployment DependsOn: - "FailuresMethodGet" Properties: Description: "Production environment supporting version-1 of the interface." RestApiId: !Ref "FailureReporting" StageName: "v1" 不起作用(在Windows 10中对我不起作用),您可以将它们读取为Spark数据帧,然后转换为import pyarrow.orc as orc的数据帧

pandas