Spark Streaming-访问Spark SQL数据框中的自定义案例类对象的数组

问题描述 投票:0回答:1

在我的Spark Streaming查询中,我要使用一个具有3个字符串成员的URL案例类,如下所示:

  url: string            
  domain: string         
  topLevelDomain: string 

我想创建一个DataFrame,其中成员之一是URL对象的数组。架构如下:

root
 |-- AccountId: integer (nullable = true)
 |-- url1: struct (nullable = true)
 |    |-- url: string (nullable = true)
 |    |-- domain: string (nullable = true)
 |    |-- topLevelDomain: string (nullable = true)
 |-- finalURLs: array (nullable = true)
 |    |-- element: struct (containsNull = true)
 |    |    |-- url: string (nullable = true)
 |    |    |-- domain: string (nullable = true)
 |    |    |-- topLevelDomain: string (nullable = true)

[C0列是URL对象的数组。

稍后,我想在此列上进行转换,以将其转换为字符串列表,根据其他列中的值,该字符串可以为finalURLsdomain

首先,是否有可能是一列case类对象的数组?如果是,那么如何应用上述转换将其简化为字符串数组?

scala apache-spark apache-spark-sql spark-streaming
1个回答
0
投票

如果要使用案例类,则需要将DataFrame转换为数据集。如果这样做,则需要转换整个记录,而不仅仅是URL。这样的事情会起作用:

topLevelDomain
© www.soinside.com 2019 - 2024. All rights reserved.