Java 演员名单<;世界其他地区>;列出<;T>;在爪哇
我从cassandra表中选取值并将其存储在数据集中,如下所示:Java 演员名单<;世界其他地区>;列出<;T>;在爪哇,java,apache-spark,Java,Apache Spark,我从cassandra表中选取值并将其存储在数据集中,如下所示: Dataset query =spark.sql("select url,sourceip,destinationip from traffic_data"); List<Row> = query.collectAsList(); Dataset query=spark.sql(“从流量数据中选择url、sourceip、destinationip”); List=query.collectAsList(); 现在
Dataset query =spark.sql("select url,sourceip,destinationip from traffic_data");
List<Row> = query.collectAsList();
Dataset query=spark.sql(“从流量数据中选择url、sourceip、destinationip”);
List=query.collectAsList();
现在我有了一个POJO类GroupClass,它有url、sourceip和DestinationIP等变量
Is it possible to cast this List<Row> to List<GroupClass>?
是否可以将此列表强制转换为列表?
从技术上讲,您可以,但这将在运行时抛出一个ClassCastException
在本例中,最佳实践是使用。我来自scala,但我相信java中也有类似的方法 可能的解决方案如下:
val query =spark.sql("select url,sourceip,destinationip from traffic_data").as[GroupClass]
现在查询值的类型为Dataset[GroupClass]
,因此调用collectAsList()
方法会运行一个List[GroupClass]
val list = query.collectAsList();
另一个解决方案(我认为您必须使用streams
在java中做同样的事情)是map
从GroupClass
中的列表中映射每个行
,如下所示:
val query =spark.sql("select url,sourceip,destinationip from traffic_data")
val list = query.collectAsList();
val mappedList = list.map {
case Row(url: String,sourceip: String,destinationip: String) =>
GroupClass(url, sourceip, destinationip)
}
我认为所有属性(url、sourceip、destinationip)都有一个字符串
您必须创建GroupedClass
:
GroupClass(url: String,sourceip: String,destinationip: String)
希望对您有所帮助您应该使用编码器
Dataset schools = context
.read()
.json("/schools.json")
.as(Encoders.bean(University.class));
更多信息可以在这里找到
或者在这里如果您使用上面的代码,它将绝对显示为错误,因为正如我上面所说的,这段代码是针对scala的。无论如何,请分享此错误,以便我们可以帮助您!!