ORCファイルは、データを含む列見出しと行ラベルを含むCSVファイルに似ていると考えることができますか?もしそうなら、どうにかしてそれを単純なpandasデータフレームに読み込めますか?私はHadoopやSparkなどのツールに慣れていませんが、ローカルのコンテンツを表示するためだけにそれらを理解する必要がありますか? PythonのORCファイル?
ファイル名は_someFile.snappy.orc
_です
オンラインでspark.read.orc('someFile.snappy.orc')
が機能することを確認できますが、_import pyspark
_を実行してもエラーが発生します。
私は素晴らしいオプションを見つけることができませんでした、Javaリーダーをラップしようとしているいくつかの死んだプロジェクトがあります。しかし、pyarrowにはpysparkを使用する必要のないORCリーダーがあります。それは少し制限されていますが、動作します。
import pandas as pd
import pyarrow.orc as orc
with open(filename) as file:
data = orc.ORCFile(file)
df = data.read().to_pandas()
万一に備えて 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()
ORCは、AVROやPARQUETと同様に、大容量ストレージ用に特別に設計されたフォーマットです。あなたはそれらを「csvのように」考えることができます、それらはすべて特定の構造を持つデータを含むファイルです(もちろんcsvやjsonとは異なります!)。
環境がHiveサポートを許可するとすぐに、pyspark
を使用するのは簡単です orcファイルの読み取り 。あなたの質問に答えて、私はHiveのないローカル環境でそれを読むことができるかどうかわかりません、私はそれをやったことがありません(次のコードで簡単なテストを行うことができます):
ORCファイルを読み込み、結果をDataFrameとして返します。
注:現在、ORCサポートはHiveサポートと一緒にのみ使用できます。
>>> df = spark.read.orc( 'python/test_support/sql/orc_partitioned')
Hiveは、データウェアハウスシステムです。これにより、従来のリレーショナルデータベースのようにMap-Reduceを介してHDFS(分散ファイルシステム)でデータをクエリできます(SQLのようなクエリの作成は、100%すべての標準SQL機能をサポートしていません)。 。
編集:新しいSparkセッションを作成するには、以下を試してください。失礼なことではありませんが、従うことをお勧めしますこの「世界」の基本を理解するためのPySparkチュートリアルの1つです。すべてがより明確になります。
import findspark
findspark.init()
from pyspark.sql import SparkSession
spark = SparkSession.builder.appName('Test').getOrCreate()