地方エンジニアの学習日記

興味ある技術の雑なメモだったりを書いてくブログ。たまに日記とガジェット紹介。

【Python】Parquetファイルを作ってパースして

これでcsvを変換する

import pandas as pd
import pyarrow as pa
import pyarrow.parquet as pq

df = pd.read_csv('test.csv')
table = pa.Table.from_pandas(df)
pq.write_table(table, 'test.parquet')

パースする

# parquetファイルのパースを行う
import pyarrow.parquet as pq
def parse_parquet(file_path):
    """
    パーケットファイルをパースして、データフレームを返す。

    Args:
        file_path (str): パーケットファイルのパス

    Returns:
        pandas.DataFrame: パーケットファイルの内容を含むデータフレーム
    """
    table = pq.read_table(file_path)
    return table.to_pandas()

if __name__ == "__main__":
    import sys
    import pandas as pd

    if len(sys.argv) != 2:
        print("Usage: python parse.py <parquet_file_path>")
        sys.exit(1)

    file_path = sys.argv[1]
    df = parse_parquet(file_path)
    print(df.head())  # データフレームの最初の5行を表示

マジックナンバーを見る

# ファイルのマジックナンバーを取得するスクリプト
import os
import sys

def get_magic_number(file_path):
    """
    ファイルのマジックナンバーを取得する関数
    :param file_path: ファイルのパス
    :return: マジックナンバーの文字列
    """
    try:
        with open(file_path, 'rb') as f:
            magic_number = f.read(4).hex()
        return magic_number
    except Exception as e:
        print(f"Error reading file {file_path}: {e}")
        return None

def main():
    # 対象のファイルパスを指定
    file_path = sys.argv[1] if len(sys.argv) > 1 else 'example.bin'

    # マジックナンバーを取得
    magic_number = get_magic_number(file_path)
    
    if magic_number:
        print(f"Magic number for {file_path}: {magic_number}")
    else:
        print("Could not retrieve magic number.")

if __name__ == "__main__":
    main()