当前位置: 首页 > news >正文

怎么做传奇私服广告网站/会计培训班

怎么做传奇私服广告网站,会计培训班,wordpress简约官网,互联网高端官网作者:Syn良子 出处:http://www.cnblogs.com/cssdongl 转载请注明出处 SparkSQL这块儿从1.4开始支持了很多的窗口分析函数,像row_number这些,平时写程序加载数据后用SQLContext 能够很方便实现很多分析和查询,如下sqlContext.sql(“…

作者:Syn良子 出处:http://www.cnblogs.com/cssdongl 转载请注明出处

SparkSQL这块儿从1.4开始支持了很多的窗口分析函数,像row_number这些,平时写程序加载数据后用SQLContext 能够很方便实现很多分析和查询,如下

 

sqlContext.sql(“select ….”)

然而我看到Spark后续版本的DataFrame功能很强大,想试试使用这种方式来实现比如row_number这种功能,话不多说,快速用pyspark测试一下,记录一下遇到的问题.

from pyspark.sql import Row, functions as F
from pyspark.sql.window import Window
from pyspark import SparkContext
sc = SparkContext("local[3]", "test data frame on 2.0")
testDF = sc.parallelize( (Row(c="class1", s=50), Row(c="class2", s=40), Row(c="class3", s=70), Row(c="class2", s=49), Row(c="class3", s=29), Row(c="class1", s=78) )).toDF()
(testDF.select("c", "s", F.rowNumber().over(Window.partitionBy("c").orderBy("s")).alias("rowNum") ).show())
 
spark-submit提交任务后直接报错如下

告诉我RDD没有toDF()属性,查阅spark官方文档得知还是需要用SQLContext或者sparkSession来初始化一下,先考虑用SQLContext吧,修改代码如下

from pyspark.sql import Row, functions as F
from pyspark.sql.window import Window
from pyspark import SparkContext

sc = SparkContext("local[3]", "test data frame on 2.0")
rddData = sc.parallelize( (Row(c="class1", s=50), Row(c="class2", s=40), Row(c="class3", s=70), Row(c="class2", s=49), Row(c="class3", s=29), Row(c="class1", s=78)))

(testDF.select("c", "s", F.rowNumber().over(Window.partitionBy("c").orderBy("s")).alias("rowNum") ).show())

spark-submit提交任务后接着报另外一个错,如下

DFNoRow_number

ok,错误很清楚,rowNumber这里我写错了,没有这个函数,查阅spark源码中的functions.py,会发现如下说明

sparkDataFrameTest

这里说了,rowNumber从1.6开始,用row_number代替,直接修改py脚本如下

from pyspark.sql import Row, functions as F
from pyspark.sql.window import Window
from pyspark import SparkContext
from pyspark.sql import SQLContext
sc = SparkContext("local[3]", "test data frame on 2.0")
rddData = sc.parallelize( (Row(c="class1", s=50), Row(c="class2", s=40), Row(c="class3", s=70), Row(c="class2", s=49), Row(c="class3", s=29), Row(c="class1", s=78)))
sqlContext = SQLContext(sc)
testDF = rddData.toDF()
(testDF.select("c", "s", F.().over(Window.partitionBy("c").orderBy("s")).alias("rowNum") ).show())

这次运行没问题,结果如下

rowNumber_result

但是我只想取每组rowNum为1的那个,代码如下

from pyspark.sql import Row, functions as F
from pyspark.sql.window import Window
from pyspark import SparkContext
from pyspark.sql import SQLContext
sc = SparkContext("local[3]", "test data frame on 2.0")
rddData = sc.parallelize( (Row(c="class1", s=50), Row(c="class2", s=40), Row(c="class3", s=70), Row(c="class2", s=49), Row(c="class3", s=29), Row(c="class1", s=78)))
sqlContext = SQLContext(sc)
testDF = rddData.toDF()
result = (testDF.select("c", "s", F.row_number().over(Window.partitionBy("c").orderBy("s")).alias("rowNum")))

可以看到,sql能实现的DataFrame的函数都可以实现,毕竟DataFrame是基于row和column的,就是写起来麻烦点.

参考资料:http://spark.apache.org/docs/1.3.1/api/python/pyspark.sql.html

转载于:https://www.cnblogs.com/cssdongl/p/6203726.html

http://www.lbrq.cn/news/1618687.html

相关文章:

  • 最新互联网平台项目/关键词优化包年推广
  • 云南建设委员会官方网站/app推广一手单平台
  • 拔别人的网站做网站合法吗/网站制作公司排名
  • 网站新建网页/百度关键词搜索排名多少钱
  • 建设网站熊掌号/全国疫情最新消息今天实时
  • 网站友情链接怎么做/刷神马关键字排名软件
  • 检查部门网站建设/无锡网站制作优化
  • 微信网站建设和维护/seo建站的步骤
  • 哪些网站可以做设计方案/关键词排名点击
  • 彩票网站开发制作h5/seo搜索引擎优化案例
  • 吉林网站建设找哪家/北京搜索关键词优化
  • 重庆建设工程信息网入渝备案查询/网站优化外包找谁
  • 上海网站建设联/域名信息查询
  • 如何鉴别建设银行网站真伪/企业网站推广注意事项
  • 企业请别人做网站/91关键词
  • 全屏网站设计尺寸/私人网站管理软件
  • 纵横天下网站建设/汕头seo网络推广
  • 网页设计与制作教程刘瑞新/百度seo查询
  • 南昌房产网官方网站/nba最快的绝杀
  • tk域名网站/网络营销策划的流程
  • 如何在国外网站做推广/餐饮管理和营销方案
  • 浙江省住房和城乡建设部网站/公司网站排名
  • wordpress装插件吗/seo收费标准
  • 龙岗平湖网站建设公司/凡科网小程序
  • 制作自己的网站教程/站长工具的网址
  • 怎么做淘课网站/头条今日头条新闻头条
  • 网站开发工具6/天津站内关键词优化
  • 建设网站的企业多少钱/南宁seo排名外包
  • 知名做网站哪家好/深圳博惠seo
  • 网站改版做301/竞价推广托管服务
  • Trust Management System (TMS)
  • 《秋招在即!Redis数据类型面试题解析》
  • lesson28:Python单例模式全解析:从基础实现到企业级最佳实践
  • 开源 Arkts 鸿蒙应用 开发(十三)音频--MP3播放
  • MVSNet系列网络概述
  • 内存分页机制分析在海外VPS系统的测试流程