zoukankan      html  css  js  c++  java
  • 大数据实战-Spark实战技巧

    1.连接mysql

    --driver-class-path mysql-connector-java-5.1.21.jar
    Uploading file...
    在数据库中,SET GLOBAL binlog_format=mixed;

    2.Spark中 使用Hive的udf

    同样使用—jars 才行

    3.Spark jupyter使用

    https://www.jb51.net/article/163641.htm

    https://my.oschina.net/albert2011/blog/754174

    使用jupyter-notebook --ip hostname -i来启动

    4.Spark使用hive的orc解析格式

    spark.sql.hive.convertMetastoreOrc=true

    使用spark写入hive表中的数据,可能会出现空指针问题或者数据越界问题,问题原因是spark的元数据解析问题,而不是hive的元数据解析问题

    5.row_number排序算子的使用

    import org.apache.spark.sql.expressions.Window
    import org.apache.spark.sql.functions.row_number
    import org.apache.spark.sql.functions._
    
    

    1.spark.sql(sql).withColumn("rn", row_number().over(Window.partitionBy('f_trans_id).orderBy(col("f_modify_time").desc)))
    2.spark.sql(sql).withColumn("rn", row_number().over(Window.partitionBy('f_trans_id).orderBy(-col("f_modify_time"))))

    3.val df = spark.sql(sql)

    df.withColumn("rn", row_number().over(Window.partitionBy('f_trans_id).orderBy(-df("f_modify_time"))))

    4.spark.sql(sql).withColumn("rn", row_number().over(Window.partitionBy('f_trans_id).orderBy(-'f_modify_time)))

    注意:-的方式,经过测试,不稳定,有时可以,有时不可以

    6.broadcast广播表

    sc.broadcast是广播数据,一般用于rdd广播,而下面的方式用于广播表

    import org.apache.spark.sql.functions.broadcast

    broadcast(tableData).createOrReplaceTempView
    吴邪,小三爷,混迹于后台,大数据,人工智能领域的小菜鸟。
    更多请关注
    file

  • 相关阅读:
    Android文件操作工具类(转)
    android中的开机自启动
    Android中调用系统所装的软件打开文件(转)
    Android TextView 阴影效果(投影)
    Smart SVN的使用
    iOS 网络开发
    iOS开发XML解析
    iOS infoq资料架构设计漫谈
    iOS 音频视频制作
    iOS 蒲公英第三方打包平台
  • 原文地址:https://www.cnblogs.com/hulichao/p/14497147.html
Copyright © 2011-2022 走看看