spark mysql scala,spark读文件写入mysql(scala版本)

package com.zjlantone.hive

import java.util.Properties

import com.zjlantone.hive.SparkOperaterHive.sparkSession

import org.apache.spark.rdd.RDD

import org.apache.spark.sql.types.StructType

import org.apache.spark.{SparkConf, SparkContext}

import org.apache.spark.sql._

case class ManxingweiyanLis(diseaseName: String,cardId: String, lisName: String,lisResult:String,lisAndResult:String)

object jangganHive {

val sparkConf: SparkConf = new SparkConf().setAppName(jangganHive.getClass.getSimpleName)

val sparkSession: SparkSession = SparkSession.builder().config(sparkConf).enableHiveSupport().getOrCreate()

val url = "jdbc:mysql://192.168.4.732:3306/jianggan?Unicode=true&characterEncoding=utf8&autoReconnect=true&failOverReadOnly=false";

def main(args: Array[String]): Unit = {

assc

sparkSession.stop()

}

def assc: Unit = {

import sparkSession.implicits._

import sparkSession.sql

val df: DataFrame = sql("select cardId,lisName,lisresult,lisbet from janggan.gaozhixuelis where lisbet !=\"\" and lisName !=\"清洁度\"")

val rdd: RDD[Row] = df.rdd

//计算化验结果

val operatorLis: RDD[(String, String)] = rdd.map(row => {

var i = ""

val cardID: String = row.get(0).toString

val lisName: String = row.get(1).toString

try {

val lisResult: String = row.get(2).toString

val lisBet: String = row.get(3).toString

if (lisResult.contains("+")) {

(cardID + "&" + lisName, "阳性")

} else if(lisResult.contains("阴性") || lisResult.contains("-")){

(cardID + "&" + lisName, "阴性")

}else {

val splits: Array[String] = lisBet.split("-|-")

if (lisResult.toDouble > splits(1).toDouble) {

i = "升高"

} else if (lisResult.toDouble < splits(0).toDouble) {

i = "降低"

}else{

i="正常"

}

(cardID + "&" + lisName, i)

}

} catch {

case e: Exception => {

(cardID + "&" + lisName, "数据异常")

}

}

})

val frame: DataFrame = operatorLis.map(x => {

ManxingweiyanLis("高脂血症",x._1.split("&")(0), x._1.split("&")(1), x._2,x._1.split("&")(1)+x._2)

}).toDF()

val proprttity=new Properties()

proprttity.put("user", "root")

proprttity.put("password", "123456")

proprttity.put("driver", "com.mysql.jdbc.Driver")

frame.write.mode(SaveMode.Append).jdbc(url, "exceptionLis", proprttity)

}

}

spark读文件写mysql&lpar;java版&rpar;

package org.langtong.sparkdemo; import com.fasterxml.jackson.databind.ObjectMapper; import org.apach ...

ActiveMQ任意文件写入漏洞(版本在5&period;12&period;X前CVE-2016-3088)

ActiveMQ任意文件写入漏洞(版本在5.12.X前CVE-2016-3088) 查看docker的activemq版本命令:$ docker ps | grep activemq927860512 ...

Spark&colon;将DataFrame写入Mysql

Spark将DataFrame进行一些列处理后,需要将之写入mysql,下面是实现过程 1.mysql的信息 mysql的信息我保存在了外部的配置文件,这样方便后续的配置添加. //配置文件示例: [ ...

Spark读HBase写MySQL

1 Spark读HBase Spark读HBase黑名单数据,过滤出当日新增userid,并与mysql黑名单表内userid去重后,写入mysql. def main(args: Array[Str ...

spark 计算结果写入mysql 案例及常见问题解决

package com.jxd import org.apache.spark.SparkContextimport org.apache.spark.SparkConfimport java.sql ...

Ruby读excel写入mysql

安装mysql2 打开cmd: gem install mysql2 代码 require 'win32ole' require 'mysql2' class String def addslashe ...

hive分区与实际分区文件不匹配导致spark读文件出错的问题解决

先解释下,由于历史原因导致hive中的看到分区比hdfs中的文件夹不匹配,存在hive中分区数有,实际hdfs中无此文件夹. spark中通过sparkSQL读取hive中的该表时,将会出现异常. 解 ...

将CSV文件写入MySQL

先打开CSV文件查看第一行有哪些字段,然后新建数据库,新建表.(若字段内容很多建议类型text,如果设成char后续会报错) 命令如下: load data infile '路径XXXX.csv' i ...

spark基础知识介绍&lpar;包含foreachPartition写入mysql)

数据本地性 数据计算尽可能在数据所在的节点上运行,这样可以减少数据在网络上的传输,毕竟移动计算比移动数据代价小很多.进一步看,数据如果在运行节点的内存中,就能够进一步减少磁盘的I/O的传输.在spar ...

随机推荐

Vs程序自动获取windows7&sol;vista系统管理员权限

1.在工程中加入MANIFEST资源(C#) 打开VS2005.VS2008.VS2010工程,查看在Properties下是否有app.manifest这个文件:如没有,按如下方式创建:鼠标右击工程 ...

Silverlight形状、画笔、变换、图像处理、几何图形

1.形状(Ellipse.Line.Path.Polygon.Polyline 和 Rectangle)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值