• 每日问题记录20171114


    spark-shell要打印一个string变量的全部怎么办?

    spark-shell如果打印一个string变量,会阶段,需要使用println(xx)才能打印出全部的数值

    ===============

    spark-sql如何写入数据到hive中?

    先创建一个List,然后使用List来创建DataFrame,最后再存储到hive中去。

       // Spark 2.1
        val spark = SparkSession.builder().master("local").getOrCreate()
    
        // Given a list of mixture of strings in integers
        val values = List("20030100013280", 1.0)
    
        // Create `Row` from `Seq`
        val row = Row.fromSeq(values)
    
        // Create `RDD` from `Row`
        val rdd = spark.sparkContext.makeRDD(List(row))
    
        // Create schema fields
        val fields = List(
          StructField("First Column", StringType, nullable = false),
          StructField("Second Column", DoubleType, nullable = false)
        )
    
        // Create `DataFrame`
        val dataFrame = spark.createDataFrame(rdd, StructType(fields))
    
        // Done! Yay!
        dataFrame.show(1)
    

    ===============

    如何写一个class到另外一个class的转换方法?

    创建一个object 类,然后再这个类里面写转换方法

    如何把string存到List[String] 里面去?

    val linkids = new List[String]
    
    linkids = point.linkid :: linkids
    

    ===============

    dataframe和dataset的区别?

    dataframe和dataset的结构差不多,拥有完全相同的成员函数,区别只是每一行数据类型不同,dataframe获取每一行数据的时候,需要使用getAs的方式来获取属性。

    rdd,dataframe, dataset的转换:

    dataframe 和 dataset 转rdd:

    val rdd1=testDF.rdd
    val rdd2=testDS.rdd
    

    rdd转dataframe:

    import spark.implicits._
    val testDF = rdd.map {line=>
          (line._1,line._2)
        }.toDF("col1","col2")
    

    rdd转dataset:

    import spark.implicits._
    case class Coltest(col1:String,col2:Int)extends Serializable //定义字段名和类型
    val testDS = rdd.map {line=>
          Coltest(line._1,line._2)
        }.toDS
    
    

    dataset转dataframe:

    import spark.implicits._
    val testDF = testDS.toDF
    

    dataframe转dataset:

    import spark.implicits._
    case class Coltest(col1:String,col2:Int)extends Serializable //定义字段名和类型
    val testDS = testDF.as[Coltest]
    

    ===============

    scala如何初始化List?

    想使用new进行初始化List,出现错误:
    Error:(67, 36) class List is abstract; cannot be instantiated
    var carMatchFlowTrailLists = new ListCarMatchFlowTrail

    直接使用:

    val adjustTrail = List[Trail]()
    

    ===============

    出现错误:

    Saving data in the Hive serde table <table_name> is not supported yet. Please use the insertInto() API as an alternative.

    改成:
    carMatchFlowTrailListsRdd.flatMap(item => item).toDF().write.mode(SaveMode.Append).insertInto("dwd_car_match_flow_trail_di")

    ===============

    出现错误:

    org.apache.spark.SparkException: Dynamic partition strict mode requires at least one static partition column. To turn this off set hive.exec.dynamic.partition.mode=nonstrict

    
          spark.sql("SET hive.exec.dynamic.partition = true")
          spark.sql("SET hive.exec.dynamic.partition.mode = nonstrict ")
          spark.sql("SET hive.exec.max.dynamic.partitions.pernode = 400")
    

    ===============

    hive中外部表和内部表的区别?

    简单来说,就是外部表数据存放在外部,删除表的时候只删除表结构,不删除表数据。而内部表,数据是存放在hive制定位置,删除表的时候,也会删除表的数据。

    http://www.aboutyun.com/thread-7458-1-1.html

  • 相关阅读:
    luoguP2016 战略游戏
    [Usaco2006 Nov]Corn Fields牧场的安排
    [Ahoi2009]self 同类分布
    POJ3208:Apocalypse Someday
    [usaco2010 Oct]Soda Machine
    [Usaco2005 Dec]Scales 天平
    PTA的Python练习题(十九)
    堆叠注入
    PHP序列化与反序列化(三)总结实战
    攻防世界web进阶1-12总结篇
  • 原文地址:https://www.cnblogs.com/yjf512/p/7835007.html
Copyright © 2020-2023  润新知