J'ai un areframe plat avec 5-6 colonnes. Je veux les nichier et le convertir en un fichier de données imbriqué afin que je puisse alors l'écrire au format de parquet.
Cependant, je ne veux pas utiliser de classes de cas car j'essaie de garder le code aussi configurable que possible. Je suis coincé avec cette partie et j'ai besoin d'aide. p>
mon entrée: p> ma sortie: p> rangée 1: p> J'ai essayé d'utiliser la fonction "Carte" dans l'ALL Spark Dataframe où je mappe mes valeurs à une classe de cas. Cependant, je jouerai avec le nom des champs et je pourrais aussi les changer. p> Je ne veux pas maintenir une classe de cas et cartographier les lignes vers les noms de colonne SQL car cela impliquerait des changements de code à chaque fois. p> Je pensais à maintenir un hashmap avec les noms de colonne que je Voulez-vous garder avec les noms de colonne du DataFrame. Par exemple, dans l'exemple, je mappe "Compte (Apple)" à "Compte of Apple". Cependant, je ne peux pas penser à un bon moyen facile de passer mon schéma comme une configuration puis de la cartographier dans mon code p> p>
3 Réponses :
:: (double côlon) à Scala est traité comme "inconvénient" dans les listes Scala. Ceci est la façon de créer une liste de scala ou d'insérer un élément à une liste mutable existante.
scala> val anotherList = 23 :: 34 <console>:12: error: value :: is not a member of Int val anotherList = 23 :: 34
Voici une approche à l'aide de la carte Scala Nous déclarons d'abord les mappages en utilisant La fonction iTère si les colonnes de l'afraframe donné et identifient les colonnes qui avoir des touches communes avec le sortie de Enfin, nous générons des fruits et des légumes via Notez que nous déposons tous les cols de la collection de colléappage après avoir terminé avec les transformations. P> sortie: p> Carte Code> Pour créer des mappages de colonne à l'aide du jeu de données suivant:
Scala. collection.mmauttable.map code> la collection et la fonction qui est responsable du mappage: p>
mappage code>. Ensuite, il renvoie la colonne qui change son nom (avec alias) en fonction des mappages appliqués. P>
MapColumns (collappage, df) .Show (false) code>: P>
struct code> type: p>
Bonjour, cette fois j'ai ajouté la fonctionnalité de cartographie qui manquait
Merci, je pensais un moyen de le faire en l'installant dans mon cas d'utilisation!
Bon alors je suis heureux
{"ID":"2","ID-2":"23","fruits":[{"Count(apple)":"0","Count(banana)":"1"}],"vegetables":[{"Count(potato)":"0","Count(Onion)":"1"}]}