scala - 如何从数据框行中获取 As[Location]("location")?
问题描述
我有一堂课Location(lat, lon)
,我创建了一个数据框df = Seq(Location(1,2), Location(3,4)).toDF
。当我尝试这样做时:
df.map(row =>
row.getAs[Location]("location")
)
它失败了,因为没有Location
. 但是我应该如何将其转换为Dataset
of Location
?
我试过了:
df.map(row =>
val seq = row.getAs[Seq[Int]]("location")
Location(seq(0), seq(1))
)
但它也不起作用。
我真的很困惑。我该如何解决这个问题?
解决方案
如果您已经case class Location(lat: Int, lon: Int)
跟进,val df = Seq(Location(1,2), Location(3,4)).toDF
您可以将此数据框df
转换为数据集或将该行更改为您在val ds = Seq(Location(1,2), Location(3,4)).toDS
其中一个评论中所说的内容。ds
ds: org.apache.spark.sql.Dataset[Location] = [lat: int, lon: int]
推荐阅读
- c++ - 解决模板成员函数重载
- java - 使用数据文件进行 Junit 测试
- android - 如何在 RecyclerView 中使可点击项目的焦点区域为非矩形
- asp.net-mvc - 为什么我在 aspnet core 中的 IIS 上发布时授权失败?
- homebrew - 错误:木桶“java7”不可用:不存在同名木桶
- php - Paypal 使用 PHP cURL 获取订阅详细信息
- python - mosquitto_pub 在 crontab -e 时不发布,但在终端中运行相同的脚本时执行
- html - 在这种情况下,我如何将按钮推到 CSS flexbox 的底部?
- php - Wordpress :: 需要通过 Wordpress 根文件夹中的额外 script.php 文件调用 Ajax Action
- firebase - Flutter Login 与 firebase 返回 ERROR_INVALID_EMAIL