我有一个Spark结构化的流数据帧列,其中包含一个数组数组,例如:
[[ts1, url1], ... , [tsN, urlN]]
其中每个子数组都是一个结构:
schema_visits = StructType(
fields = [
StructField("timestamp", LongType(), True),
StructField("url", StringType(), True),
])
并且N在行与行之间是可变的。
我想要的是仅获取带有网址的列:
[url1, ... , urlN]
我认为我可以使用explode(),getItem(“ url”),groupby + agg + collect_list来实现这一目标,但是我想知道是否有更简单的方法?
由于它是结构化流,因此udf可能不会起作用,但是如果可行,这也将很有趣。