pom.xm
xml version="1.0" encoding="UTF-8"?>
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0
com.ftms.spark
ftms
1.0-SNAPSHOT
1.7
1.7
UTF-8
2.11.8
2.0.0
2.7.3
org.scala-lang
scala-library
${scala.version}
org.scala-lang
scala-xml
2.11.0-M4
org.slf4j
slf4j-api
1.6.6
org.slf4j
slf4j-log4j12
1.6.6
log4j
log4j
1.2.16
org.apache.spark
spark-core_2.11
${spark.version}
org.apache.hadoop
hadoop-client
${hadoop.version}
org.apache.spark
spark-sql_2.11
${spark.version}
org.apache.hbase
hbase-server
1.2.4
mysql
mysql-connector-java
5.1.38
com.oracle
ojdbc6
11.2.0.3
org.elasticsearch
elasticsearch-spark-20_2.10
5.5.1
net.alchim31.maven
scala-maven-plugin
3.2.2
org.apache.maven.plugins
maven-compiler-plugin
3.5.1
net.alchim31.maven
scala-maven-plugin
scala-compile-first
process-resources
add-source
compile
scala-test-compile
process-test-resources
testCompile
org.apache.maven.plugins
maven-compiler-plugin
compile
compile
org.apache.maven.plugins
maven-shade-plugin
2.4.3
package
shade
*:*
META-INF/*.SF
META-INF/*.DSA
META-INF/*.RSA
package com.ftms.scala.result import org.apache.log4j.{Level, Logger} import org.apache.spark.sql.{DataFrame, Dataset, Row, SQLContext} import org.apache.spark.{SparkConf, SparkContext} import org.elasticsearch.spark.sql.EsSparkSQL import org.apache.spark.sql.types.{IntegerType, StringType, StructField, StructType} /** * Created by othc on 2017/10/10. */ object Test { def main(args: Array[String]): Unit = { Logger.getLogger("org").setLevel(Level.ERROR) val conf = new SparkConf().setAppName("import").setMaster("local[2]") .set("spark.sql.warehouse.dir","file:///C:/WorkSpace/IdeaProjects/FTMS_MAVEN/spark-warehouse") // .set("es.index.auto.create", "true") .set("es.nodes", "192.168.1.212:9200") .set("es.mapping.id", "VINNO") val sc = new SparkContext(conf) val sqlContext = new SQLContext(sc) import sqlContext.implicits._ //车辆 val jdbcMapv = Map("url" -> "jdbc:oracle:thin:@//192.168.1.212:1521/ftms", "user" -> "ftms", "password" -> "ftms", "dbtable" -> "MTD_VEHICLE", "driver" -> "oracle.jdbc.driver.OracleDriver") val jdbcDFv = sqlContext.read.options(jdbcMapv).format("jdbc").load jdbcDFv.registerTempTable("vehicle") val data: DataFrame = sqlContext.sql("select * from vehicle") println(data.count()) //联系人信息 val jdbcMapm = Map("url" -> "jdbc:oracle:thin:@//192.168.1.212:1521/ftms", "user" -> "ftms", "password" -> "ftms", "dbtable" -> "MTD_CONTACTINFORMATION", "driver" -> "oracle.jdbc.driver.OracleDriver") val jdbcDFm = sqlContext.read.options(jdbcMapm).format("jdbc").load jdbcDFm.registerTempTable("information") val info: DataFrame = sqlContext.sql("select * from information") //join val join: DataFrame = sqlContext.sql( """ |select v.*,concat_ws(',', collect_set(n.CONTACTDETAIL)) as CONTACTDETAIL from vehicle v |left join ( |select m.* from information m where m.CONTACTTYPE in ('1','2','3','4') |) n on v.customerid=n.customerid |group by v.VEHICLEID,v.VINNO,v.CUSTOMERID,v.VEHICLETYPE,v.VEHICLEUSETYPE,v.VEHICLENAMECODE, | v.VEHICLENAME,v.VEHICLEGRADE,v.MISSION,v.MODEL,v.MODELYEAR,v.SFX,v.COLORCODE,v.COLORNAME, | v.ENGINENO,v.EXHAUST,v.REGISTERNO,v.BUYDATE,v.SALESDEALERCODE,v.DEALERCODE,v.BILLTIME,v.BILLPRICE, | v.BILLNUMBER,v.DELIVERYENDDATE,v.BODYPRICE,v.BODYCUT,v.BODYPAY,v.TAXRATE,v.TAX,v.REMARK,v.LOANSTATE, | v.LOANGIVEOUTTIME,v.LOANORGRAN,v.PRODUCTYPE,v.YEARRATE,v.DOWNPAYMENT,v.LOANAMOUNT,v.INVALIDDATA, | v.CREDATE,v.CREATEUSER,v.UPDATETIME,v.UPDATEUSER,v.SALESDATE,v.CANCELDATE,v.BUYERID, | v.LOANPERIED,v.ISTTIME,v.UPTTIME,v.DELTIME """.stripMargin ) // join.rdd.repartition(1).saveAsTextFile("C:\\data\\ttttt") val schema: StructType = join.schema println(schema) val res = join.select(join.col("VEHICLEID").cast(StringType).as("vehicleid"), join.col("VINNO").as("vinno"),join.col("CUSTOMERID").as("customerid"),join.col("VEHICLETYPE").as("vehicletype"), join.col("VEHICLEUSETYPE").as("vehicleusetype"),join.col("VEHICLENAMECODE").as("vehiclenamecode"),join.col("VEHICLENAME").as("vehiclename"), join.col("VEHICLEGRADE").as("vehicleusetype"),join.col("MISSION").as("mission"),join.col("MODEL").as("model"), join.col("MODELYEAR").as("modelyear"),join.col("SFX").as("sfx"),join.col("COLORCODE").as("colorcode"),join.col("COLORNAME").as("colorname"), join.col("ENGINENO").as("engineno"),join.col("EXHAUST").as("exhaust"),join.col("REGISTERNO").as("registerno"),join.col("BUYDATE").as("buydate"), join.col("SALESDEALERCODE").as("salesdealercode"),join.col("DEALERCODE").as("dealercode"),join.col("BILLTIME").as("billtime"),join.col("BILLPRICE").cast(StringType).as("billprice"), join.col("BILLNUMBER").as("billnumber"),join.col("DELIVERYENDDATE").as("deliveryendddate"),join.col("BODYPRICE").cast(IntegerType).as("bodyprice"),join.col("BODYCUT").cast(IntegerType).as("bodycut"), join.col("BODYPAY").cast(IntegerType).as("bodypay"),join.col("TAXRATE").cast(IntegerType).as("taxrate"),join.col("TAX").cast(IntegerType).as("tax"),join.col("REMARK").as("remark"), join.col("LOANSTATE"),join.col("LOANGIVEOUTTIME"),join.col("LOANORGRAN"),join.col("PRODUCTYPE"), join.col("YEARRATE").cast(IntegerType),join.col("DOWNPAYMENT").cast(IntegerType),join.col("LOANAMOUNT").cast(IntegerType),join.col("INVALIDDATA"), join.col("CREDATE"),join.col("CREATEUSER"),join.col("UPDATETIME"),join.col("UPDATEUSER"), join.col("SALESDATE"),join.col("CANCELDATE"),join.col("BUYERID"),join.col("LOANPERIED"), join.col("ISTTIME"),join.col("UPTTIME"),join.col("DELTIME"),join.col("CONTACTDETAIL") ) EsSparkSQL.saveToEs(res,"mtd_vehicle_order_history/mtd_vehicle_type") sc.stop() } }