Spark数组数组:如何提取每个子数组(结构类型)的第一个元素?

时间:2019-04-23 16:23:45

标签: apache-spark pyspark spark-structured-streaming

我有一个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可能不会起作用,但是如果可行,这也将很有趣。

0 个答案:

没有答案