Table des matières
Réponse correcte
Maison développement back-end Tutoriel Python Impossible de décomposer le JSON imbriqué dans le dataframe Spark

Impossible de décomposer le JSON imbriqué dans le dataframe Spark

Feb 11, 2024 am 10:51 AM
字符串解析

无法分解 Spark 数据框中的嵌套 JSON

Contenu des questions

Je suis nouveau sur Spark. J'essaie d'aplatir le dataframe mais je ne parviens pas à le faire via "exploser".

La structure originale du bloc de données est la suivante :

id|approvaljson
1|[{"approvertype":"1st line manager","status":"approved"},{"approvertype":"2nd line manager","status":"approved"}]
2|[{"approvertype":"1st line manager","status":"approved"},{"approvertype":"2nd line manager","status":"rejected"}]
Copier après la connexion

Je dois le convertir vers le schéma suivant ?

id|approvaltype|status
1|1st line manager|approved
1|2nd line manager|approved
2|1st line manager|approved
2|2nd line manager|rejected
Copier après la connexion

Je l'ai essayé

df_exploded = df.withcolumn("approvaljson", explode("approvaljson"))
Copier après la connexion

Mais j'ai eu l'erreur :

Cannot resolve "explode(ApprovalJSON)" due to data type mismatch:
parameter 1 requires ("ARRAY" or "MAP") type, however, "ApprovalJSON"
is of "STRING" type.;
Copier après la connexion


Réponse correcte


Analysez d'abord la chaîne de type json dans un tableau de structures, puis utilisez inline pour diviser le tableau en lignes et colonnes

df1 = df.withcolumn("approvaljson", f.from_json("approvaljson", schema="array<struct<approvertype string, status string>>"))
df1 = df1.select("id", f.inline('approvaljson'))
Copier après la connexion

Résultats

df1.show()

+---+----------------+--------+
| ID|    ApproverType|  Status|
+---+----------------+--------+
|  1|1st Line Manager|Approved|
|  1|2nd Line Manager|Approved|
|  2|1st Line Manager|Approved|
|  2|2nd Line Manager|Rejected|
+---+----------------+--------+
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment utiliser la fonction d'analyse en langage C Comment utiliser la fonction d'analyse en langage C Apr 28, 2024 pm 09:12 PM

La fonction parse analyse une chaîne et la convertit en une liste de jetons séparés par un délimiteur. Étapes : 1. Recherchez le premier caractère non délimiteur à partir du début de la chaîne ; 2. Continuez la recherche jusqu'à ce qu'un délimiteur soit rencontré et terminez la chaîne à ce délimiteur ; 3. Stockez le jeton dans le tableau de jetons ; 1-3 jusqu'à la fin de la chaîne ; 5. Ajoutez un pointeur vers NULL à la fin du tableau pour indiquer la fin du tableau.

Comment obtenir la date d'expiration du jeton jwt en go ? Comment obtenir la date d'expiration du jeton jwt en go ? Feb 14, 2024 pm 12:20 PM

J'ai un jeton jwt et je peux voir le jeton décodé sur le site https://jwt.io/. Cela ne m'oblige pas à définir des secrets ou des réclamations. Je cherche donc un moyen de décoder le token pour obtenir la date d'expiration sans fournir de secret. J'utilise la bibliothèque ngopkg.in/square/go-jose.v2/jwt, ci-dessous mon code : token,err:=jwt.ParseSigned(jwtToken) le jeton de valeur de retour a un champ d'en-tête qui comprend l'identifiant de clé, l'algorithme, mais ça ne me donne pas de date d'expiration. J'ai recherché ce sujet et les gens m'ont dit d'utiliser github.com/a

Obtenez des paires clé-valeur imbriquées de la requête x-www-form-urlencoded au format JSON dans Golang Obtenez des paires clé-valeur imbriquées de la requête x-www-form-urlencoded au format JSON dans Golang Feb 09, 2024 pm 03:15 PM

J'ai un cas d'utilisation où nous obtenons une valeur de clé imbriquée dans le corps x-www-form-urlencoded comme ci-dessous name=abc&age=12&notes[key1]=value1&notes[key2]=value2 J'ai essayé url.parsequery("name= abc&age=12&notes \[key1\]=value1&notes\[key2\]=value2") mais cela donne {"name":"abc","age":12,"notes[key1]":"value1", "note

Comment convertir une chaîne en entier en C++ Comment convertir une chaîne en entier en C++ May 01, 2024 pm 01:27 PM

En C++, il existe deux manières de convertir une chaîne en entier : en utilisant la fonction sto i(), qui reçoit directement la chaîne et renvoie un entier. Utilisez la classe isringstream pour analyser la chaîne dans un flux d'entrée et extraire les entiers. La méthode choisie dépend du format de chaîne : stoi() est plus concise si le format est sans ambiguïté et ne contient aucun caractère non numérique ; isstringstream est plus flexible si la chaîne peut contenir des caractères non numériques ou nécessite une conversion personnalisée.

Comment utiliser la réflexion pour modifier dynamiquement les valeurs des variables dans Golang Comment utiliser la réflexion pour modifier dynamiquement les valeurs des variables dans Golang May 02, 2024 am 11:09 AM

La réflexion du langage Go vous permet de manipuler des valeurs de variables au moment de l'exécution, notamment en modifiant les valeurs booléennes, les entiers, les nombres à virgule flottante et les chaînes. En obtenant la valeur d'une variable, vous pouvez appeler les méthodes SetBool, SetInt, SetFloat et SetString pour la modifier. Par exemple, vous pouvez analyser une chaîne JSON dans une structure, puis utiliser la réflexion pour modifier les valeurs des champs de la structure. Il convient de noter que l'opération de réflexion est lente et que les champs non modifiables ne peuvent pas être modifiés. Lors de la modification de la valeur du champ de structure, les champs associés peuvent ne pas être automatiquement mis à jour.

Que signifie analyser en Java Que signifie analyser en Java Apr 28, 2024 pm 09:09 PM

L'analyse en Java fait référence au processus de conversion d'une chaîne ou d'une autre représentation en un type ou un objet spécifié. Les applications courantes incluent la conversion de chaînes en types numériques, en objets date/heure, en objets JSON et l'extraction de données à partir de documents XML. Analysez via des méthodes intégrées, des classes de formateur ou des bibliothèques tierces.

Compréhension approfondie de PHP : méthode d'implémentation de conversion de JSON Unicode en chinois Compréhension approfondie de PHP : méthode d'implémentation de conversion de JSON Unicode en chinois Mar 05, 2024 pm 02:48 PM

Compréhension approfondie de PHP : méthode d'implémentation de conversion de JSONUnicode en chinois Au cours du développement, nous rencontrons souvent des situations où nous devons traiter des données JSON, et l'encodage Unicode en JSON nous posera quelques problèmes dans certains scénarios, en particulier lorsqu'Unicode doit être converti Lorsque l'encodage est converti en caractères chinois. En PHP, certaines méthodes peuvent nous aider à réaliser ce processus de conversion. Une méthode courante sera présentée ci-dessous et des exemples de code spécifiques seront fournis. Tout d’abord, comprenons d’abord le Un en JSON

Guide de résolution d'adresse de fonction commune Golang Guide de résolution d'adresse de fonction commune Golang Apr 08, 2024 pm 02:18 PM

Les fonctions clés pour analyser les adresses dans le langage Go incluent : net.ParseIP() : analyser les adresses IPv4 ou IPv6. net.ParseCIDR() : analyser les balises CIDR. net.ResolveIPAddr() : résolvez le nom d'hôte ou l'adresse IP en adresse IP. net.ResolveTCPAdr() : résolvez le nom d'hôte et le port en adresse TCP. net.ResolveUDPAdr() : résolvez le nom d'hôte et le port en adresse UDP.

See all articles