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 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