4
5

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.

RubyでもParquetファイルがつくりたい

Posted at

背景

Pythonの pandasDataFrame.to_parquet が優秀すぎて「parquetファイルを扱うならPython」という風潮ですが、
https://pandas.pydata.org/pandas-docs/version/0.22.0/generated/pandas.DataFrame.to_parquet.html#pandas.DataFrame.to_parquet

Rubyでも簡単につくれることが判明したので、共有しておきます。

やり方

apacheの公式gemを使えばいける。
(≠red-arrowなので注意)
https://github.com/apache/arrow/tree/master/ruby/red-parquet

検証

ファイル作成

gemインストール

$ gem install red-parquet

テストファイル作成(csv)

$ echo colA,colB > test.csv
$ echo 1,2  >> test.csv

ruby上で変換処理(csv->parquet)
※save時に拡張子を変えるだけ

$ irb
irb(main):001:0> require "parquet"
=> true
irb(main):002:0> table = Arrow::Table.load("./test.csv")
=> #<Arrow::Table:0x7fbb0d3e6708 ptr=0x7fbb0e0a4010>
	 colA	 colB
0	    1	    2
irb(main):003:0> table.save("./test.parquet")
=> true

確認

test.parquetをS3にあげて、S3 Selectで確認

スクリーンショット 2020-06-08 19.08.04.png

できた!!(型推論もしてくれてる...!)

備考

このあたりを読んでると、案外Rubyでもファイル操作ができそう。
https://www.slideshare.net/kou/datasciencerb

4
5
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
4
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?