8
votes

Sélectionnez l'élément Array de Spark DataFrames Méthode Split dans le même appel?

Je divise une demande HTTP à regarder les éléments et je me demandais s'il y avait un moyen de spécifier l'élément que j'aimerais examiner dans le même appel sans avoir à faire une autre opération.

Par exemple: xxx

me donne un nouveau dataframe avec des lignes de tableaux comme ceci: xxx < P> Je souhaite l'article de l'index 1 (Cours) sans avoir à faire une autre autre Sélectionnez l'instruction pour spécifier df.select (df.http [1]) ou autre. Est-ce possible?


0 commentaires

3 Réponses :


-1
votes

Eh bien, vous pouvez définir un udf : xxx

Vous pouvez également utiliser la méthode getItem recommandé par @max xxx


1 commentaires

L'utilisation d'un UDF Python entraînera une mauvaise performance. La solution avec GetItem serait préférée.



14
votes

Utilisez GetItem . Je dirais que je n'utilise pas Python UDF Juste pour rendre le code plus jolie - il est beaucoup plus lent que les fonctions de Dataframe natif (en raison de la déplacement de données entre Python et JVM).

from pyspark.sql import functions as F
df.select(F.split(df.http_request, '/').alias('http').getItem(1))


0 commentaires

0
votes

Une alternative utilisant SELECTEXPR:

df.selectexpr ("http [1] comme http_2nd_item")


0 commentaires