如何将 DataFrame 中查询出来的对应字段的值获取出来并转换成 String

/*
	需求:
		在MySQL中有一张表:id,sqltext,state
		主要是本表中存在一个sql语句,现在需要SparkSQL去执行本SQL
*/

// 构建 SparkConf
val conf = new SparkConf.setAppName("XXX")

// 构建 SparkContext
val sc = new SparkContext(conf)

// 构建 HiveContext
val hivecontext = new HiveContext(sc)

// 获取数据库中的表,并构建成一张Hive临时表
/*
 这里获取的表的目的主要是用来保存数据的 ===》 将要执行的 SQL 语句保存在里面,然后通过这种方式取出来,并执行。
 
 通过 JDBC 的方式读取内容 :
	jdbcurl : MySQL的 jdbc 连接地址及相关的数据库名称、格式等信息
	tableName : 主要是指定要读取得 MySQL 中的表的名称。
	properties : 连接 MySQL 的数据库的相关的驱动、用户名、密码	
*/
// createOrReplaceTempView 最新的创建Hive临时表的算子
hivecontext.read.jdbc(jdbcurl,tableName,properties).createOrReplaceTempView("tempName")

// 获取临时表中的value 并转换为 String 类型。
val df = hivecontext.sql("select sqltext from tempName where state = 1").rdd.map(
row => {
		val sql = row.getAs[String]("sqltext")
		
		sql
	}
).collect()(0)
// 将执行结果保存在关系型数据库中
hivecontext.sql(df).write.mode("append").jdbc(jdbcurl,tableName,properties)

这里就是将DataFrame中的指定字段中的值单独取出来,取出来后变为String类型,方便以后对这个值进行操作。

版权声明:本文为Han_Lin_原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。