简体   繁体   English

价值负责人不是org.apache.spark.sql.Row的成员

[英]value head is not a member of org.apache.spark.sql.Row

I am executing twitter sample code, while i am getting error for value head is not a member of org.apache.spark.sql.Row, can someone please explain little bit more on this error. 我正在执行twitter示例代码,而当我因Value Head出现错误而不是org.apache.spark.sql.Row的成员时,是否有人可以对此错误进行更多解释。

val tweets = sc.textFile(tweetInput)
    println("------------Sample JSON Tweets-------")
    for (tweet <- tweets.take(5)) {
      println(gson.toJson(jsonParser.parse(tweet)))
    }

    val tweetTable = sqlContext.jsonFile(tweetInput).cache()
    tweetTable.registerTempTable("tweetTable")

    println("------Tweet table Schema---")
    tweetTable.printSchema()

    println("----Sample Tweet Text-----")
    sqlContext.sql("SELECT text FROM tweetTable LIMIT 10").collect().foreach(println)

    println("------Sample Lang, Name, text---")
    sqlContext.sql("SELECT user.lang, user.name, text FROM tweetTable LIMIT 1000").collect().foreach(println)

    println("------Total count by languages Lang, count(*)---")
    sqlContext.sql("SELECT user.lang, COUNT(*) as cnt FROM tweetTable GROUP BY user.lang ORDER BY cnt DESC LIMIT 25").collect.foreach(println)

    println("--- Training the model and persist it")
    val texts = sqlContext.sql("SELECT text from tweetTable").map(_.head.toString)
    // Cache the vectors RDD since it will be used for all the KMeans iterations.
    val vectors = texts.map(Utils.featurize).cache()

I think your problem is that the sql method returns a DataSet of Row s. 我认为您的问题是sql方法返回Row的DataSet。 Therefore the _ represents a Row and Row doesn't have a head method (which explains the error message). 因此,_表示Row并且Row没有head方法(该方法解释了错误消息)。

To access items in a Row you can do one of the following: 要连续访问项目,您可以执行以下操作之一:

// get the first element in the Row
val texts = sqlContext.sql("...").map(_.get(0))

// get the first element as an Int
val texts = sqlContext.sql("...").map(_.getInt(0))

See here for more info: https://spark.apache.org/docs/2.1.0/api/java/org/apache/spark/sql/Row.html 请参阅此处以获取更多信息: https : //spark.apache.org/docs/2.1.0/api/java/org/apache/spark/sql/Row.html

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM