Après avoir appelé le fichier Shell sur Python, convertissez CSV en Parquet.

Ce que vous voulez faire dans l'ensemble

J'ai besoin de convertir beaucoup de fichiers CSV en Parquet, Puisqu'il n'y a pas de ligne de nom de colonne dans l'en-tête du fichier CSV en premier lieu -Ajouter un en-tête au fichier CSV ・ Convertir CSV en Parquet J'ai dû créer un outil pour faire ces deux étapes.



Hypothèses

Le nom de colonne ajouté à l'en-tête CSV sera le titre de la valeur dans le fichier Parquet. Si la ligne d'en-tête n'existe pas et que les données existent soudainement Chaque titre du fichier Parquet de sortie sera les données de la première ligne.

Appeler Shell depuis Python

Le processus d'ajout d'une ligne d'en-tête CSV pourrait également être écrit en Python, C'était relativement facile à ajouter dans Shell, donc Je l'ai créé dans Shell et j'ai appelé le fichier depuis Python.

qiita.py


import subprocess

# comment
cmd = './add_header.sh'
subprocess.call(cmd, shell=True)

En spécifiant Shell dans le sous-processus Vous pouvez appeler un fichier Shell externe.

add_header.sh


##!/usr/bin/env bash
for file in `\find from_dir -maxdepth 1 -type f`; do
    gsed -i '1iheader1,header2' $file
done

"1i" est requis lors de l'appel de gsed.

gsed ・ ・ ・ Veuillez installer gnu-sed.

■ En-tête du fichier CSV du résultat de l'exécution header1,header2

Convertir CSV en parquet

J'ai dû convertir un grand nombre de fichiers CSV existant sur S3 vers Parquet. Tous les fichiers sont téléchargés localement.

qiita2.py


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

from_dir = './from_dir/'
to_dir = './to_dir/'

#from_Lire tous les CSV dans dir
files = glob.glob(from_dir + "*", recursive=True)

#Convertir un fichier à la fois en_Stocker dans dir
for file in files:
    path_name = file.split('/')
    df = pd.read_csv(file)
    table = pa.Table.from_pandas(df)
    pq.write_table(table, to_dir + path_name[2] + '.pq')

Lire le fichier csv, afficher les pandas La conversion en parquet est facile avec pyarrow

Recommended Posts

Après avoir appelé le fichier Shell sur Python, convertissez CSV en Parquet.
[Python] Comment convertir un fichier db en csv
[Python] Convertit les délimiteurs de fichier csv en délimiteurs de tabulation
Convertir XLSX en CSV sur la ligne de commande
J'ai essayé de toucher un fichier CSV avec Python
Comment convertir un fichier JSON en fichier CSV avec Python Pandas
[Python] Ecrire dans un fichier csv avec Python
Sortie vers un fichier csv avec Python
Créez un script shell pour exécuter le fichier python plusieurs fois
Comment mettre à jour la version Python de Cloud Shell dans GCP
Comment convertir Python en fichier exe
Convertir un fichier psd en png en Python
Lisez le fichier CSV avec Python et convertissez-le en DataFrame tel quel
Comment lire un fichier CSV avec Python 2/3
[Python] Conversion de DICOM en PNG ou CSV
Convertir un fichier svg en png / ico avec Python
Écriture de journaux dans un fichier CSV (Python, langage C)
Introduction à Python avec Atom (en route)
Convertir le code de caractère du fichier avec Python3
Enregistrez les résultats de la recherche sur Twitter au format CSV.
Différentes façons de lire la dernière ligne d'un fichier csv en Python
Je suis tombé sur un code de caractère lors de la conversion de CSV en JSON avec Python
[Python] Analyser le dossier, y compris les sous-dossiers → Exporter la liste des fichiers au format CSV
Dessinez une ligne de pliage / diagramme de dispersion avec python matplotlib pour fichier CSV (2 colonnes)
Python pratique Convertir le calendrier occidental entré en calendrier japonais
Réfléchissez à la programmation de Python sur votre iPad
Étapes pour installer le dernier Python sur votre Mac
[Python] Convertir le texte PDF en CSV pour chaque page (2/24 postscript)
Lisez le fichier xml en vous référant au didacticiel Python
Comment convertir des fichiers Json au format CSV ou au format EXCEL
Script Python qui crée un fichier JSON à partir d'un fichier CSV
Comment profiter de Python sur Android !! Programmation en déplacement !!
Lire le fichier csv Python
Convertir les informations financières de toutes les sociétés cotées des 5 dernières années en fichier CSV
[Python] Ouvrez le fichier csv dans le dossier spécifié par pandas
[python] Remplacez le nom du fichier image par un numéro de série
Comment changer le fichier de configuration pour qu'il soit lu par Python
Changer la destination de sortie standard en un fichier en Python
[Hyperledger Iroha] Remarques sur l'utilisation du SDK Python
Obtenez uniquement la version Python (telle que 2.7.5) sur le shell CentOS 7
[Python] Lisez le fichier csv et affichez la figure avec matplotlib
Utilisez pyOCR pour convertir la description de la carte en texte
Comment déployer Pybot, le manuel Python le plus simple, sur Heroku
Conversion par lots de tous les fichiers xlsx du dossier en fichiers CSV
Exécutez le fichier python après avoir activé l'environnement virtuel python avec le fichier de commandes
Enregistrer des images sur le Web sur un lecteur avec Python (Colab)
J'ai essayé de changer le script python de 2.7.11 à 3.6.0 sur Windows10
Essayez de déchiffrer les caractères déformés dans le nom du fichier joint avec Python
Convertir un fichier Excel en texte en Python à des fins de comparaison
[python] Convertir la date en chaîne
Convertir numpy int64 en python int
[Python] Convertir la liste en Pandas [Pandas]
Convertir le HTML en fichier texte
Mettez à jour le python que vous aviez sur votre Mac à 3.7-> 3.8
Convertir le projet Scratch en Python
[Python] Convertir Shift_JIS en UTF-8
Écrire en csv avec Python