在同一调用中从Spark Dataframes拆分方法中选择数组元素?
发布于 2021-01-29 16:25:29
我正在拆分HTTP请求以查看元素,我想知道是否有一种方法可以指定我想在同一调用中查看的元素,而不必执行其他操作。
例如:
from pyspark.sql import functions as fn
df.select(fn.split(df.http_request, '/').alias('http'))
给了我一个新Dataframe
的数组行,像这样:
+--------------------+
| http|
+--------------------+
|[, courses, 26420...|
我想要索引1(课程)中的项目,而不必执行另一条select
语句来指定df.select(df.http[1])
或执行任何操作。这可能吗?
关注者
0
被浏览
51
1 个回答
-
好吧,您可以定义一个
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)))
您也可以使用
getItem
@max推荐的方法df.select(F.split(df.http_request, '/').alias('http').getItem(1))