Seleccione el elemento de la matriz del método de división de Spark Dataframes en la misma llamada?

Estoy dividiendo una solicitud HTTP para ver los elementos, y me preguntaba si había una manera de especificar el elemento que me gustaría ver en la misma llamada sin tener que hacer otra operación.

Por ejemplo:

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

me da un nuevo Dataframe con filas de matrices como esta:

 +--------------------+ | http| +--------------------+ |[, courses, 26420...| 

Quiero que el elemento en el índice 1 (cursos) sin tener que hacer otra statement de select para especificar df.select(df.http[1]) o lo que sea. es posible?

Bueno podrías definir un UDF :

 from pyspark.sql.functions import * from pyspark.sql.types import * def getter(column, index): return column[index] getterUDF = udf(getter, StringType()) df.select(getterUDF(split(df.http_request, '/').alias('http'), lit(1))) 

Utilice getItem . Yo diría que no use UDF de Python solo para hacer que el código se vea más bonito, es mucho más lento que las funciones nativas de DataFrame (debido al movimiento de datos entre Python y JVM).

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