J'ai un fichier stocké dans HDFS en tant que part-m-00000.gz.parquet
J'ai essayé d'exécuter hdfs dfs -text dir/part-m-00000.gz.parquet
mais il est compressé. J'ai donc exécuté gunzip part-m-00000.gz.parquet
, mais il ne décompresse pas le fichier car il ne reconnaît pas l'extension .parquet
.
Comment puis-je obtenir les noms de schéma/colonne pour ce fichier?
Vous ne pourrez pas "ouvrir" le fichier en utilisant un fichier hdfs dfs -text car ce n'est pas un fichier texte. Les fichiers de parquet sont écrits sur le disque très différemment des fichiers texte.
Et dans le même ordre d’idées, le projet Parquet fournit des outils pour le parquet permettant d’accomplir des tâches similaires à celles que vous tentez de faire. Ouvrez et voyez le schéma, les données, les métadonnées, etc.
Découvrez le projet parquet-tool (qui se résume simplement à un fichier jar.) parquet-tools
Cloudera, qui soutient et contribue fortement à Parquet, contient également une page de Nice avec des exemples d'utilisation des outils de parquet. Un exemple de cette page pour votre cas d'utilisation est
parquet-tools schema part-m-00000.parquet
Commander la page Cloudera. Utilisation du format de fichier de parquet avec Impala, Hive, Pig, HBase et MapReduce
Si vos fichiers Parquet se trouvent dans HDFS ou S3, comme moi, vous pouvez essayer les solutions suivantes:
HDFS
parquet-tools schema hdfs://<YOUR_NAME_NODE_IP>:8020/<YOUR_FILE_PATH>/<YOUR_FILE>.parquet
S3
parquet-tools schema s3://<YOUR_BUCKET_PATH>/<YOUR_FILE>.parquet
J'espère que ça aide.
Puisqu'il ne s'agit pas d'un fichier texte, vous ne pouvez pas créer de "texte" dessus . Vous pouvez le lire facilement via Hive même si les outils de parquet ne sont pas installés, si vous pouvez charger ce fichier dans un Hive table.