Как прочитать файл ORC, хранящийся локально в Python Pandas? - PullRequest
0 голосов
/ 19 октября 2018

Можно ли считать файл ORC похожим на файл CSV с заголовками столбцов и метками строк, содержащими данные?Если это так, могу ли я как-то прочитать это в простой кадр данных панд?Я не настолько знаком с инструментами, как Hadoop или Spark, но нужно ли их понимать, чтобы увидеть содержимое локального ORC-файла в Python?

Имя файла: someFile.snappy.orc

В Интернете видно, что spark.read.orc('someFile.snappy.orc') работает, но даже после import pyspark выдает ошибку.

Ответы [ 3 ]

0 голосов
/ 04 декабря 2018

Мне не удалось найти отличных вариантов, есть несколько мертвых проектов, пытающихся обернуть java reader.Однако у 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()
0 голосов
/ 09 июля 2019

В случае, если import pyarrow.orc as orc не работает (у меня не работало в Windows 10), вы можете прочитать их во фрейм данных Spark, а затем преобразовать в фрейм данных pandas

import findspark
from pyspark.sql import SparkSession

findspark.init()
spark = SparkSession.builder.getOrCreate()
df_spark = spark.read.orc('example.orc')
df_pandas = df_spark.toPandas()
0 голосов
/ 19 октября 2018

ORC, как AVRO и PARQUET, - формат, специально разработанный для массового хранения.Вы можете думать о них "как CSV", все они - файлы, содержащие данные, с их определенной структурой (отличной от CSV или JSON, конечно!).

Использование pyspark должно быть простым чтение файла орка , как только ваша среда предоставит поддержку Hive.Отвечая на ваш вопрос, я не уверен, что в локальной среде без Hive вы сможете прочитать его, я никогда не делал этого (вы можете выполнить быстрый тест с помощью следующего кода):

Загружает файлы ORC, возвращая результат в виде DataFrame.

Примечание. В настоящее время поддержка ORC доступна только вместе с поддержкой Hive.

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

Hive - это система хранилища данных, которая позволяет запрашивать данные в HDFS (распределенная файловая система) через Map-Reduce, как в традиционной реляционной базе данных (созданиеЗапросы, подобные SQL, не поддерживают на 100% все стандартные функции SQL!).

Редактировать : Попробуйте следующее для создания нового сеанса Spark.Не хамить, но я предлагаю вам следовать одному из многих руководств PySpark, чтобы понять основы этого "мира".Все будет намного понятнее.

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