Je viens de R, je suis nouveau dans SparkR, et j'essaie de diviser une colonne SparkDataFrame de chaînes JSON en colonnes respectives. Les colonnes dans le Spark DataFrame sont des tableaux avec un schéma comme celui-ci :
> printSchema(tst)
root
|-- FromStation: array (nullable = true)
| |-- element: string (containsNull = true)
|-- ToStation: array (nullable = true)
| |-- element: string (containsNull = true)
Si je regarde les données dans le visualiseur, View(head(tst$FromStation))
Je peux voir que la colonne FromStation du SparkDataFrame contient un formulaire comme celui-ci dans chaque ligne :
list("{\"Code\":\"ABCDE\",\"Name\":\"StationA\"}", "{\"Code\":\"WXYZP\",\"Name\":\"StationB\"}", "{...
Lorsque le ... indique que le motif se répète un nombre inconnu de fois.
Ma question
Comment extraire ces informations et les placer dans un cadre de données plat ? Idéalement, je voudrais faire un FromStationCode
y FromStationName
pour chaque observation dans la colonne du tableau imbriqué. J'ai essayé diverses combinaisons de explode
y getItem
...mais en vain. Je continue à obtenir une erreur d'inadéquation du type de données. J'ai cherché des exemples d'autres personnes ayant rencontré ce problème dans Spark, mais les exemples dans SparkR sont plus rares. J'espère que quelqu'un ayant plus d'expérience dans l'utilisation de Spark/SparkR pourra m'éclairer.
Merci beaucoup, nate