java反射載入類,並轉化為DataFrame
動態載入類,構造類的例項,並轉化為DataFrame,同時還要解決入表時,類屬性值與表字段一一對應,同時只有部分欄位有值,其他欄位提供根據欄位型別提供預設值
def mergeRDD(spark:SparkSession,countRDDs:RDD[(String, (Int,Int))],dtoName:String):DataFrame={ import spark.implicits._ // 聚合所有指標,並封裝為HashMap ,key 為dto中序號,value為dto 值 val rdd = countRDDs.groupByKey().map(x =>(x._1,x._2.toList)).map{ x => //從keys分離出相關屬性 ex 1_1_1val keyList = x._1.split("\t").map{y => val fields =y.split("\001") val value = fields(2) match { case "1" => (fields(1).toInt,fields(0)) case "2"if(!"null".equals(fields(1))) => (fields(1).toString,fields(0)) case _ =>(null,fields(0)) } value } keyList++x._2 }.map{ x => varmap : mutable.HashMap[String,Any] =mutable.HashMap() x.map{y =>map.put(y._2.toString,y._1)} map } // 注意此處的scala類在轉df時出現問題,所以採用java類,放棄case class來裝載資料 val classType = Class.forName(dtoName) val tx = rdd.map{y => val obj = classType.newInstance() val fields = classType.getDeclaredFields for(i <- 1 until fields.length) { val field = fields(i) val indexKey = i+1+"" field.setAccessible(true) if(i==fields.length-1){ field.set(obj,DateUtil.getSimpleDate(new Date())) }else { if(field.getType.getName.endsWith("Double")){ field.set(obj, y.getOrElse(indexKey, 0.00)) }else if(field.getType.getName.endsWith("Integer")){ field.set(obj, y.getOrElse(indexKey, 0)) }else { field.set(obj, y.getOrElse(indexKey, "")) } } } obj } //此處的classType是java類 val df = spark.createDataFrame(tx,classType) df }
相關推薦
java反射載入類,並轉化為DataFrame
動態載入類,構造類的例項,並轉化為DataFrame,同時還要解決入表時,類屬性值與表字段一一對應,同時只有部分欄位有值,其他欄位提供根據欄位型別提供預設值 def mergeRDD(spark:S
java獲取excel中資料,並轉化為JSON格式
java通過poi讀取execl檔案,並且將其中的map格式和陣列格式的字串,轉化為相應的資料型別。 引入poi庫 讀取execl資料,轉化為json字串 將其中的map格式和陣列格式的字串,轉化為相應的資料型別 引入poi庫: <depen
前端js如何生成一個對象,並轉化為json字符串
cti {} 理解 () min jquery pan i++ 2.0 一,直接上代碼 <script src="../../Content/jquery-2.0.3.min.js" type="text/javascript"></script>
ROS bag包資料的回放,提取任意話題資料,並轉化為txt檔案
一、通過bag檔案記錄話題訊息 當釋出話題的節點執行後,可以通過rostopic list 列出當前執行的話題,然後記錄: mkdir bagfile cd bagfile rosbag record -a #記錄所有的話題 當訊息記錄完成後,結束ctrl+c
Robot Framework 按行讀Excel,並轉化為list,同時迴圈轉化為dict
在介面測試時(Post)需要傳入引數: 但引數較多時,如果每次都建立,那非常不方便,且不靈活,為了便於維護,將輸入引數在Excel中維護,靈活多變: 直入主題: Excel引數如下(由於公司安全考慮,欄位引數都會打碼): 我們的介面傳參有12個引數,個別型別有13個引數
python .dcm文件讀取,並轉化為.jpg格式
plot pip scipy 文件讀取 com 相關信息 python程序 install pre .dcm文件是DICOM(Digital Imaging and Communications in Medicine)即醫學數字成像和通信中記錄醫學圖像和相關信息的文件,在
C#反射 字符串轉為實體類,並做為參數傳入泛型方法中使用
subst type xxd main.c 發現 get director col asm 工作中有這樣一個需求,有N張不同的報表,每張報表對應一個數據源,以前采用SQL統計方式 ,統計數據采用內存方式,首先在內在裏定義了數據源對應實體。統計條件用lamdba表達式式實現,
java動態編譯class,動態載入類,執行載入類的方法,直接可執行測試
直接上圖上程式碼 public static void main(String[] args) { TestClass testClass=new TestClass(); try { //動態編譯程式碼 Java
根據字串的形式,自動匯入模組並使用反射找到模組中的類,並例項化物件,利用importlib和getattr實現的
例如: auth資料夾下一個SCRF.py檔案,裡面有一個Cors類 class CORS(object): def process_request(self): print('666') auth資料
java 反射轉換類(把map轉為java bean , 把javabean 轉成 map)
import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.lang.reflect.Field; import java.lang.reflect.Modifier; import
Java反射之——Java動態載入類
1、靜態載入和動態載入的區分: 我們在理解動態載入的同時,需要區分Java的編譯和執行: 編譯時載入屬於靜態載入,我們平時開發中使用最多的就是靜態載入,new物件都屬於靜態載入類,在編譯時載入所有可能使用到的類(雖然有可能用不到)。A a = new A(); 執行時載入屬於動態載入,我
python處理gz壓縮檔案,解壓並轉化為json
import requests import gzip import json # gz檔案地址 url='https://shilupan-basic-user-pro.oss-cn-shangha
使用java反射操作類的建構函式,成員變數和成員方法
在java.lang.reflect包中有三個類Field,Method,Constructor.分別描述域,方法,構造器。參考API,關於這三個類的說明。 在執行時使用反射分析物件,如果訪問的是私有域或是私有方法,私有建構函式,會丟擲IllegalAccessExce
Android NDK(JNI)學習總結一:Java程式碼中申明native函式-Java呼叫C函式,並在C函式中訪問java類和方法、屬性
本文不涉及android-ndk開發環境搭。 步驟一:新建一個APP,名稱為HelloJNI,然後定義一個類(將會在native程式碼中呼叫和訪問該類): package com.example.hellojni; public class JNITe
Java反射列印類的資訊,包括類的成員函式、成員變數(只獲取成員函式)
import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.lang.reflect.Method; public class ClassUtil { /** *
JNI中在被呼叫的C/C++函式中如何訪問Java程式中的類,並編寫應用例項
1、在javah工具生成的C/C++函式宣告中的JNIEnv型別引數和jobject型別引數的介紹 JNIEXPORT void JNICALL Java_jni_TestNative_sayhell
JAVA 資料表反射實體類,自動生成實體類
import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.io.PrintWriter; import java.sql.Connection; impor
Java 反射與類載入
一 Class物件 一個類中有屬性,方法,構造器等,一個Class物件包含了某個特定類的相關資訊,class是描述類的類。 獲取Class物件的三種方式: 1.通過類名獲取 類名.class 2.通過物件獲取 物件名.getClass
反射學習(二)java動態載入類
一 什麼是動態載入類 什麼是靜態載入類 Class.forName 不僅表示類的類型別,還代表了動態載入類。編譯時載入是靜態載入類, 執行時載入是動態載入類。 請大家區分編譯 執行。 二.為何要使用動態載入類 用記事本寫了一個程式 並沒有寫A類和B類以及st
Java 編寫並測試一個代表地址的Address類,並可以返回完整的地址資訊
編寫一個代表地址的Address類,地址資訊由國家,省份,城市,街道,郵編組成,並且可以返回完整的地址資訊。 class Address{ private String nation,province,city,street,code; pub