spark数据导入、处理实例
来源:互联网 发布:数控g92带图编程实例 编辑:程序博客网 时间:2024/05/21 06:52
当项目中遇到所要分析的数据量较大情况时,本地python直接处理或导入数据库等普通的处理方式显然并不合适,不仅效率低下,且容易引起数据库崩溃。用spark将本地数据上传hdfs,写入hive,会更加高效。
下面实现简单的spark下数据处理方式,,语言为scala,供大家参考。
import com.databricks.spark.csv
import org.apache.spark._
import org.apache.spark.sql.hive.HiveContext
import scala.xml._
import org.apache.hadoop.fs.FileSystem
import org.apache.hadoop.fs.Path
import org.apache.hadoop.conf.Configuration
class CDataProcess{
def dataProcess(){
//initialize spark
val conf = new SparkConf()
val sc = new SparkContext(conf)
val sqlContext = new HiveContext(sc)
//initialize fs
val fs = FileSystem.get(new Configuration)
//get config
val config = XML.loadFile("./config.xml")
val nodes = config \ "FILE"
nodes.foreach { n =>
val database = (n \ "HIVE").text
val tableName = (n \ "TABLE").text
sqlContext.sql(s"use $database")
//import to hive
if( (n \\ "IMPORT TO HIVE").text.toBoolean ){
val filepath = ( n \\ "FILEPATH").text
//update file to hdfs
fs.copyFromLocationFile(false,new Path(filePath),new Path("/user/spark"))
val hdfsPath = "user/spark" + filePath.split("/").last
try{
val df = sqlContext.read.format("com.databricks.spark.csv").option("header","true").option("inferSchema","true").load(hdfsPath)
df.show()
df.write.mode("overwrite").saveAsTable(tableName)
}
catch case e:Exception => e.printStackTrace()
finally fs.delete(new Path(hdfsPath),false)
}
}
}
}
以上代码为将本地文件上传hdfs,在写入hive,如有不当之处,欢迎指正。
- spark数据导入、处理实例
- spark数据导入导出
- spark处理大数据的几个实例介绍
- spark数据倾斜处理
- Spark将HDFS数据导入到HBase
- Spark将HDFS数据导入到HBase
- Spark-zeppelin大数据可视化导入Mysql
- Spark将HDFS数据导入到HBase
- spark从mongodb导入数据到hive
- mysql导入数据的处理
- 批量导入数据触发器处理
- java 多线程处理导入数据
- Sqoop数据导入大数据平台实例
- Spark - 大数据Big Data处理框架
- Spark - 大数据Big Data处理框架
- Spark - 大数据Big Data处理框架
- Spark处理Json格式数据(Python)
- Spark-ML-数据获取/处理/准备
- 移植全新的linux-3.5.0到Super4412(1)
- [easy]561. Array Partition I
- 操作系统基础
- Ubuntu使用教程:无法获得锁 /var/lib/apt/lists/lock
- ubuntu12.04-server设置静态IP
- spark数据导入、处理实例
- 大话设计模式-初夜
- Object方法简介
- codeforce 6A
- Linux 重启命令
- 第一小项目(python磁盘空间不足QQ邮箱报警0.0001)
- Netty 入门笔记
- POJ 1178 Camelot 笔记
- 减至法解题的经典题型