加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

scala – org.apache.spark.sql.AnalysisException:无法解析给

发布时间:2020-12-16 18:19:15 所属栏目:安全 来源:网络整理
导读:exitTotalDF .filter($"accid" === "dc215673-ef22-4d59-0998-455b82000015") .groupBy("exiturl") .agg(first("accid"),first("segment"),$"exiturl",sum("session"),sum("sessionfirst"),first("date")) .orderBy(desc("session")) .take(500)org.apache.s
exitTotalDF
  .filter($"accid" === "dc215673-ef22-4d59-0998-455b82000015")
  .groupBy("exiturl")
  .agg(first("accid"),first("segment"),$"exiturl",sum("session"),sum("sessionfirst"),first("date"))
  .orderBy(desc("session"))
  .take(500)

org.apache.spark.sql.AnalysisException: cannot resolve '`session`' given input columns: [first(accid,false),first(date,sum(session),exiturl,sum(sessionfirst),first(segment,false)]

它像sum函数一样无法正确找到列名.

使用Spark 2.1

解决方法

通常在这样的场景中,我将在列上使用as方法.例如.agg(第一个(“accid”),第一个(“segment”),$“exiturl”,sum(“session”).as(“session”),sum(“sessionfirst”),first(“date”) )).这使您可以更好地控制预期的内容,并且如果在将来的spark版本中总和名称发生变化,那么更新数据集中的所有名称将会更加令人头痛.

另外,我刚刚进行了一个简单的测试.如果未指定名称,则看起来Spark 2.1中的名称将更改为“sum(session)”.自己找到这种方法的一种方法是在数据集上调用printSchema.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读