作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 Spark 文档中,声明 Spark SQL 查询的结果是 SchemaRDD。这个 SchemaRDD 的每一行都可以依次访问。我想知道是否有任何方法可以使用构建 SQL 查询的案例类的字段名称来访问列。我很欣赏 case 类与结果无关的事实,特别是如果我选择了单个列和/或为它们设置了别名:但是,通过名称而不是序数访问字段的某种方法会很方便。
最佳答案
一个简单的方法是使用“语言集成”select
在生成的 SchemaRDD 上使用方法来选择你想要的列——这仍然会给你一个 SchemaRDD,如果你选择了不止一列,那么你仍然需要使用序数,但你总是可以一次选择一列.例子:
// setup and some data
val sqlContext = new org.apache.spark.sql.SQLContext(sc)
import sqlContext._
case class Score(name: String, value: Int)
val scores =
sc.textFile("data.txt").map(_.split(",")).map(s => Score(s(0),s(1).trim.toInt))
scores.registerAsTable("scores")
// initial query
val original =
sqlContext.sql("Select value AS myVal, name FROM scores WHERE name = 'foo'")
// now a simple "language-integrated" query -- no registration required
val secondary = original.select('myVal)
secondary.collect().foreach(println)
secondary
是一个只有一列的 SchemaRDD,尽管原始查询中有别名,但它仍然有效。
original.registerAsTable("original")
val secondary = sqlContext.sql("select myVal from original")
secondary.collect().foreach(println)
val secondary = original.map {case Row(myVal: Int, _) => myVal}
关于apache-spark - 对 Spark SQL 查询返回的行的非序访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25492484/
序 大家好呀,我是summo,这次来写写我在上班空闲(摸鱼)的时候做的一个小网站的事。去年阿里云不是推出了个活动嘛,2核2G的云服务器一年只要99块钱,懂行的人应该知道这个价格在业界已经是非常良心了
我尝试根据给定的级别顺序(BFS 顺序)构造 BST。我知道这是可能的,但我不知道我该怎么写。问题是我必须使用 BFS 序列。所以,我不能在这里使用递归,我必须迭代地编写我的程序......我发现这有
我是一名优秀的程序员,十分优秀!