Je veux créer un fichier Parquet même en Ruby

Contexte

Les pandas et DataFrame.to_parquet de Python sont si bons que" Python est le moyen de gérer les fichiers parquet " https://pandas.pydata.org/pandas-docs/version/0.22.0/generated/pandas.DataFrame.to_parquet.html#pandas.DataFrame.to_parquet

Je l'ai trouvé facile à faire avec Ruby, je vais donc le partager.

manière

Vous pouvez utiliser la gemme officielle Apache. (Notez que ≠ flèche rouge) https://github.com/apache/arrow/tree/master/ruby/red-parquet

Vérification

Création de fichier

installation de gemmes

$ gem install red-parquet

Créer un fichier de test (csv)

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

Processus de conversion sur rubis (csv-> parquet)

$ 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

Vérification

Élevez test.parquet à S3 et vérifiez avec S3 Select

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

l'a fait! !! (Il fait également l'inférence de type ...!)

Remarques

Si vous lisez cette zone, il semble que vous puissiez exploiter des fichiers même avec Ruby de manière inattendue. https://www.slideshare.net/kou/datasciencerb

Recommended Posts

Je veux créer un fichier Parquet même en Ruby
[Ruby] Je veux faire un saut de méthode!
Je veux être finalement même à kotlin
Je veux obtenir la valeur en Ruby
Même en Java, je veux afficher true avec un == 1 && a == 2 && a == 3 (édition PowerMockito)
Je veux utiliser une petite icône dans Rails
J'ai essayé de créer une compétence Clova en Java
Je souhaite surveiller un fichier spécifique avec WatchService
Je souhaite définir une fonction dans la console Rails
Je veux cliquer sur une broche GoogleMap dans RSpec
Je souhaite créer une annotation générique pour un type
Même en Java, je veux afficher true avec un == 1 && a == 2 && a == 3 (Black Magic)
Je souhaite effectuer une factorisation prime rapide avec Ruby (ABC177E)
Je souhaite créer un formulaire pour sélectionner la catégorie [Rails]
Je veux FlashAttribute au printemps même si j'ai défini un proxy inverse! (ne pas faire)
J'ai essayé de créer une application cartographique simple dans Android Studio
Je veux changer la valeur de l'attribut dans Selenium of Ruby
Je souhaite développer une application web!
Je veux écrire un joli build.gradle
Je veux écrire un test unitaire!
Je veux utiliser @Autowired dans Servlet
Si hash [: a] [: b] [: c] = 0 dans Ruby, je veux que vous étendiez récursivement même si la clé n'existe pas
[Ruby] Je souhaite afficher uniquement le caractère impair dans la chaîne de caractères
J'ai essayé de créer une classe parent d'objet de valeur dans Ruby
Comment créer une requête à l'aide de variables dans GraphQL [Utilisation de Ruby on Rails]
Je souhaite sélectionner plusieurs éléments avec une disposition personnalisée dans la boîte de dialogue
Pour créer un fichier Zip lors du regroupement des résultats de recherche de base de données en Java
Je souhaite créer un SNS Web sombre avec Jakarta EE 8 avec Java 11
[Ruby] Je souhaite afficher les éléments publiés par ordre de date la plus récente
Je souhaite afficher un PDF chinois (coréen) avec des rapports fins
Si vous voulez créer un fichier zip avec Ruby, c'est rubyzip.
Je veux ForEach un tableau avec une expression Lambda en Java
"Professeur, je souhaite implémenter une fonction de connexion au printemps" ① Hello World
Je veux trier par délimiteur d'onglet avec ruby
Je veux créer un fichier de guerre Servlet avec OpenJDK sur CentOS7. Sans mvn. Sans connexion Internet.
Je souhaite envoyer un e-mail en Java.
Essayez de créer un babillard en Java
Je souhaite transmettre APP_HOME pour me connecter à Gradle
Je souhaite télécharger un fichier sur Internet en utilisant Ruby et l'enregistrer localement (avec prudence)
Je voulais que (a == 1 && a == 2 && a == 3) vrai en Java
Je veux écrire une simple répétition d'une chaîne de caractères
J'ai essayé de créer une application de clonage LINE
J'ai créé une bibliothèque d'extension Ruby en C
Comment créer un thème dans Liferay 7 / DXP
Je souhaite concevoir une structure pour la gestion des exceptions
rsync4j --Je veux toucher rsync en Java.
Comment créer facilement un pull-down avec des rails
J'ai essayé de créer une compétence Alexa avec Java
[Android] Je souhaite créer un ViewPager pouvant être utilisé pour les didacticiels
Créez une application de bureau Windows dans Ruby et distribuez un fichier exécutable (.exe)!
Je souhaite pouvoir lire des fichiers en utilisant refile avec administrate [rails6]
Faisons une application TODO avec Java 2 Je veux créer un modèle avec Spring Initializr et créer Hello world
[Introduction] Créer une application Ruby on Rails