1. 程式人生 > >如何將 DataFrame 中查詢出來的對應欄位的值獲取出來並轉換成 String

如何將 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型別,方便以後對這個值進行操作。

相關推薦

如何 DataFrame 查詢出來對應獲取出來轉換 String

/* 需求: 在MySQL中有一張表:id,sqltext,state 主要是本表中存在一個sql語句,現在需要SparkSQL去執行本SQL */ // 構建 SparkConf val conf = new SparkConf.setAppName("XXX"

python 從txt檔案查詢含某的行,這些行名稱的影象提取出來另存

初學python,雖然方法笨拙,但是為了便於學習做紀錄。 # -*- coding: UTF-8 -*-  #!/usr/bin/env python import re from PIL import Image f1 = open('1.txt','r') f2 = o

查詢兩張表某一對應不相同的…

功能:查詢A表中欄位v與B表中欄位m不重複的記錄並去除重複 sql語句: select distinct v from  A where not exists(select DISTINCT m from B where A.v=B.m) 表A: 表B:

在資料庫查詢多個的時候,不能用物件接受

今天在做查詢從資料庫中查詢兩個欄位的問題的時候不知道是應該用物件接受,還是集合接受,開始的時候用物件接受 service層介面: User userUpdateByAccount(@Param("account") String account, @Param("phone") String phone)

mongodb查詢返回指定

在寫vue專案呼叫介面獲取資料的時候,比如新聞列表頁我只需要顯示新聞標題和發表時間,點選每條新聞進入詳情頁的時候才會需要摘要、新聞內容等關於此條新聞的所有欄位。 但其實我所有關於新聞的資料在同一個資料集合裡,也就是隻有一個集合 我不希望獲取新聞列表的時

mysql查詢varchar型別的整數(去除小數)

(假設我們有一個students表,表中有個varchar型別的number欄位) 第一次我使用round()函式找出四捨五入後等於其本身的數字: SELECT number FROM student

MySQLgroup_concat函式,用符號連線查詢分組裡

MySQL中group_concat函式 完整的語法如下: group_concat([DISTINCT] 要連線的欄位 [Order BY ASC/DESC 排序欄位] [Separator '分隔符']) 基本查詢 mysql> select * from aa;

SQL查詢有很多,就不想要其中一個的方法

在sql查詢中 通常選取欄位都是select 欄位1,欄位2,欄位3....... from 表, 如果有很多欄位,就不想要其中一個 有沒有方法能 select 非(欄位1) from 表 查到其他欄位的內容呢 把欄位1去掉declare @s nvarchar(10

SQL Server資料庫查詢含有某個的表及該表記錄條數

SELECT object_name(sc.id) as TableName, sc.Name as ColumnName, si.rows as RowCounts FROM SysColumns sc LEFT JOIN SysObjects so ON sc.id =

Sql查詢本月資料的表示方法

----------------------------選出當月的記錄-------------------------------------------------------------------- select

sql語句怎麼在一個數據庫查詢擁有同一名的所有表

1. SELECT TABLE_NAME  FROM INFORMATION_SCHEMA.COLUMNS  WHERE COLUMN_NAME = '欄位名' 2. SELECT COLUMN_NAME,TABLE_NAME FROM INFORMATION_SCHE

在Oracle查詢Date型別的資料

利用函式:to_char和to_date select * from  [表名] where to_char([需要查詢的欄位],'yyyyMMdd') between '20130601' and '20130630' select * from  [表名] 

django ModelForm的外來鍵過濾的實現

1. Model class user_list(models.Model): user_name=models.CharField(unique=True, max_length=40) full_name=models.CharField(unique=True, max_l

MySQL資料庫查詢多個全部相同的記錄

資料庫中使用者表,資料從第三方系統匯入,由於一些垃圾資料,存在使用者名稱和密碼都相同的賬戶,造成介面上一些問題,SQL語句如下: select User_Account,User_Pwd,COUNT(

【utils】通過列舉的某個獲取列舉的EnumUtil工具類

有的時候遇到這種情況 , 我們有列舉的其中一個欄位的值 , 然後通過這個值獲取列舉或者其他欄位的資訊 , 如果沒有工具類 , 就需要在每個列舉中新增相應的方法 , 通過工具類的方法可以減少程式碼量

Oracle判斷select的為NULL的函式

COALESCE()這個函式是ASNI標準的SQL函式,MS SQL 和 oracle都可以用 NVL()是oracel獨有的函式,功能與COALESCE()相同 而在 MS SQL中的ISNULL()函式功能與COALESCE()相同 1  SELECT NVL(FIE

MySQL、SQL server 、Oracle資料庫查詢所有的資料庫,查詢指定資料庫所有表名,查詢所有的的名字

MySQL中查詢所有資料庫名和表名 1.查詢所有資料庫 show databases; 2.查詢指定資料庫中所有表名 select table_name from information_schema.tables where table_schema='database_name' a

mysql查詢:同一個滿足多個條件的對應

比如查詢patient_id,對應的code_id分別等於1,2,3 select distinct patient_id from qs_patient_code WHERE code_id = 1 or code_id = 3 or code_id = 2

mysql和oracle查詢出的一條結果的多個拼接

1,mysql concat('a','b','c')和concat_ws('a','b','c')的區別:前者如果有某個值為空,結果為空;後者如果有某個值為空,可以忽略這個控制 SELECT concat_ws('',FORE_TWO,THIRD_POSITION,FOURTH_POSIT

獲得陣列對應的一組資料

資料格式 reportList: [{    date: "",         projectCode:    "",