0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

parquetファイルの内容を確認する方法について

Posted at

背景・目的

  • parquetファイルと、GlueやAthenaなどで定義したスキーマにおいて、データタイプが異なるため、HIVE_BAT_DATAのエラーになる場合があります。
  • スキーマをparquetで定義されているデータタイプに合わせて修正する場合、1)ファイルで定義されているデータを調べる。2)スキーマを再作成する。事が必要です。
  • 1)のファイルで定義されているデータを調べる場合、parquet-toolsを使うことで内容を確認できるので使い方をメモしておく。

内容

前提

  • 対象のparquetファイルはvpcflowログになります。

スキーマを確認する場合

  • コマンド
parquet-tools schema ${parquetファイル}
  • 結果
[21-11-25 14:01] $ parquet-tools schema 0123456789012_vpcflowlogs_ap-northeast-1_fl-xxxxxxxxxxxxxxxxxxx_20211124T0000Z_4fcc3e99.log.gz                                                                          
message LogFormatSchema.LogFormatInfo {
  optional int32 version;
  optional binary account_id (STRING);
  optional binary interface_id (STRING);
  optional binary srcaddr (STRING);
  optional binary dstaddr (STRING);
  optional int32 srcport;
  optional int32 dstport;
  optional int32 protocol;
  optional int64 packets;
  optional int64 bytes;
  optional int64 start;
  optional int64 end;
  optional binary action (STRING);
  optional binary log_status (STRING);
}

[21-11-25 14:01] $ 

データを確認する場合(全件)

  • コマンド
parquet-tools cat ${parquetファイル}
  • 結果
    • 出力量が多いので先頭30行のみ表示しています。
[21-11-25 14:09] $ parquet-tools cat 0123456789012_vpcflowlogs_ap-northeast-1_fl-xxxxxxxxxxxxxxxxxxx_20211124T0000Z_4fcc3e99.log.gz | head -30
version = 2
account_id = unknown
interface_id = eni-xxxxxxxxxx
srcaddr = -
dstaddr = -
start = 1637712005
end = 1637712056
action = -
log_status = NODATA

version = 2
account_id = unknown
interface_id = eni-xxxxxx
srcaddr = -
dstaddr = -
start = 1637712065
end = 1637712116
action = -
log_status = NODATA

version = 2
account_id = unknown
interface_id = eni-xxxxxxx
srcaddr = -
dstaddr = -
start = 1637712125
end = 1637712176
action = -
log_status = NODATA


データを確認する場合(先頭N件)

  • head --records N or n Nで件数が絞り込める。自分はエラーにより実行できなかったので、後ほど確認する。
  • ここでは、デフォルト5件を表示している。
parquet-tools head ${parquetファイル}

[21-11-25 14:16] $ parquet-tools head 0123456789012_vpcflowlogs_ap-northeast-1_fl-xxxxxxxxxxxxxxxxxxx_20211124T0000Z_4fcc3e99.log.gz    
version = 2
account_id = unknown
interface_id = eni-XXXX
srcaddr = -
dstaddr = -
start = 1637712005
end = 1637712056
action = -
log_status = NODATA

version = 2
account_id = unknown
interface_id = eni-XXXX
srcaddr = -
dstaddr = -
start = 1637712065
end = 1637712116
action = -
log_status = NODATA

version = 2
account_id = unknown
interface_id = eni-XXXX
srcaddr = -
dstaddr = -
start = 1637712125
end = 1637712176
action = -
log_status = NODATA

version = 2
account_id = unknown
interface_id = eni-XXXX
srcaddr = -
dstaddr = -
start = 1637712245
end = 1637712296
action = -
log_status = NODATA

version = 2
account_id = unknown
interface_id = eni-XXXX
srcaddr = -
dstaddr = -
start = 1637712185
end = 1637712236
action = -
log_status = NODATA

[21-11-25 14:16] $ 

考察

  • この他にも、meta情報や件数出力、ファイルマージなどいくつかできる模様。後ほど記載する。

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?