Spark RDD à DataFrame python
Je suis en train de convertir l'Étincelle RDD à un DataFrame. J'ai vu de la documentation et de l'exemple où le régime est passé à
sqlContext.CreateDataFrame(rdd,schema)
fonction.
Mais j'ai 38 colonnes ou des champs et cela va encore augmenter. Si j'manuellement donner le schéma spécifiant chaque champ de l'information, qu'il va être trop fastidieux.
Est-il un autre moyen de spécifier le schéma sans connaître les informations des colonnes avant.
si vous avez 38 colonnes, pourquoi travaillez-vous avec des RDD en premier lieu? pourquoi ne pas débuter avec DataFrame?
Je suis le chargement de données de Graphe Neo4j. Où les données sont récupérées comme CA et d'avoir quelques dépendances.
Je suis le chargement de données de Graphe Neo4j. Où les données sont récupérées comme CA et d'avoir quelques dépendances.
OriginalL'auteur Jack Daniel | 2016-09-26
Vous devez vous connecter pour publier un commentaire.
Voir,
Il y a deux façons de convertir un CA de DF dans Spark.
toDF()
etcreateDataFrame(rdd, schema)
Je vais vous montrer comment vous pouvez le faire de façon dynamique.
toDF()
La
toDF()
commande vous donne la façon de convertir unRDD[Row]
à un Dataframe. Le point est, l'objetRow()
peut recevoir un**kwargs
argument. Donc, il y a un moyen facile de le faire.De cette façon, vous allez être en mesure de créer un dataframe de façon dynamique.
createDataFrame(ca, schéma)
D'autres façon de le faire est de créer une dynamique de schéma. Comment?
De cette façon:
Cette deuxième façon est plus propre de le faire...
Donc, c'est comment vous pouvez créer dataframes dynamiquement.
Dans ce cas, sera dataframe option. Grâce à l'utilisation de PySpark RDD fonctions d'utiliser le tuyau entre la JVM et Python pour exécuter cette logique de f(x) et en utilisant un DataFrame vous ne communiquera pas avec python pour faire le schéma d'après le schéma est à construire avec les.
Je suis désolé. Tu veux dire que le sqlContext.createDataFrame(rdd, le schéma) est la meilleure option, droit?
Oui, pour PySpark la meilleure option pour les performances sont toujours à l'aide de DataFrame
Je downvoted parce que ce qui jette de tous les champs de cordes. L'OP dit qu'il ne sait pas ce que les colonnes sont en avance de temps. Comment pourrait-il savoir qu'elles étaient les chaînes de caractères?
OriginalL'auteur Thiago Baldim
Essayer si cela fonctionne
OriginalL'auteur Arun Sharma