[發(fā)明專利]一種由轉(zhuǎn)換原語(yǔ)生成Spark代碼的方法有效
| 申請(qǐng)?zhí)枺?/td> | 201611252903.4 | 申請(qǐng)日: | 2016-12-30 |
| 公開(公告)號(hào): | CN106843858B | 公開(公告)日: | 2020-06-09 |
| 發(fā)明(設(shè)計(jì))人: | 張?zhí)?/a>;潘敏學(xué);楊宇飛;劉撥杰;車開達(dá);李宣東 | 申請(qǐng)(專利權(quán))人: | 南京大學(xué) |
| 主分類號(hào): | G06F8/33 | 分類號(hào): | G06F8/33;G06F8/35;G06F40/253;G06F40/151;G06F40/16 |
| 代理公司: | 南京瑞弘專利商標(biāo)事務(wù)所(普通合伙) 32249 | 代理人: | 唐紹焜 |
| 地址: | 210093 江*** | 國(guó)省代碼: | 江蘇;32 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 轉(zhuǎn)換 生成 spark 代碼 方法 | ||
1.一種由轉(zhuǎn)換原語(yǔ)生成Spark代碼的方法,其特征在于:包括步驟:
步驟10:設(shè)計(jì)表示數(shù)據(jù)模型變換的轉(zhuǎn)換原語(yǔ)文法;
所述步驟10的設(shè)計(jì)過程包括:
步驟20:規(guī)定轉(zhuǎn)換控制層原語(yǔ)ExecuteTransformation用來控制整個(gè)模型轉(zhuǎn)換的執(zhí)行,調(diào)度ExecuteRule原語(yǔ);
步驟21:規(guī)定轉(zhuǎn)換控制層原語(yǔ)ExecuteRule用來控制一條規(guī)則的執(zhí)行,調(diào)度執(zhí)行層原語(yǔ);
步驟22:規(guī)定執(zhí)行層原語(yǔ)MatchPattern根據(jù)輸入模式在模型中進(jìn)行匹配,得到需轉(zhuǎn)換的輸入數(shù)據(jù)模型片段;
步驟23:規(guī)定執(zhí)行層原語(yǔ)MatchObject根據(jù)指定條件,去查找滿足條件的匹配對(duì)象;
步驟24:規(guī)定執(zhí)行層原語(yǔ)CreateObject來創(chuàng)建模型對(duì)象元素;
步驟25:規(guī)定執(zhí)行層原語(yǔ)CreateReference來創(chuàng)建模型關(guān)系元素;
步驟26:規(guī)定表達(dá)式計(jì)算層原語(yǔ)EvaluateExpression用于進(jìn)行復(fù)雜表達(dá)式計(jì)算;
步驟11:輸入數(shù)據(jù)變換的原語(yǔ)文件;原語(yǔ)文件是根據(jù)步驟10設(shè)計(jì)的轉(zhuǎn)換原語(yǔ)文法設(shè)計(jì)的,包含輸入數(shù)據(jù)模型、輸出數(shù)據(jù)模型和轉(zhuǎn)換規(guī)則的信息;
所述步驟11中設(shè)計(jì)原語(yǔ)文件的過程包括:
步驟30:打開eclipse創(chuàng)建原語(yǔ)xml文件;
步驟31:右鍵點(diǎn)擊添加ExecuteTransformation節(jié)點(diǎn);
步驟32:右鍵點(diǎn)擊ExecuteTransformation節(jié)點(diǎn)添加Domain節(jié)點(diǎn),并設(shè)置屬性為input_type;
步驟33:右鍵點(diǎn)擊Domain節(jié)點(diǎn),添加兩個(gè)inputFile節(jié)點(diǎn),存放要進(jìn)行轉(zhuǎn)換的輸入文件信息;
步驟34:右鍵點(diǎn)擊ExecuteTransformation節(jié)點(diǎn)添加Domain節(jié)點(diǎn),并設(shè)置屬性為output_type;
步驟35:右鍵點(diǎn)擊Domain節(jié)點(diǎn),添加一個(gè)outputFile節(jié)點(diǎn),存放轉(zhuǎn)換后的輸出文件信息;
步驟36:右鍵點(diǎn)擊ExecuteTransformation節(jié)點(diǎn)添加ExcuteRule節(jié)點(diǎn);
步驟37:右鍵點(diǎn)擊ExecuteRule節(jié)點(diǎn),添加兩個(gè)MatchType和一個(gè)joinKey節(jié)點(diǎn),在該兩個(gè)節(jié)點(diǎn)里添加轉(zhuǎn)換規(guī)則;結(jié)束本次原語(yǔ)文件的設(shè)計(jì);
步驟12:利用Xtext對(duì)步驟11設(shè)計(jì)的原語(yǔ)文件進(jìn)行語(yǔ)法分析及語(yǔ)義轉(zhuǎn)換,并得到抽象語(yǔ)法樹;
步驟13:利用Xtend生成代碼生成器,建立轉(zhuǎn)換原語(yǔ)與Spark代碼之間的映射,并根據(jù)步驟12得到的抽象語(yǔ)法樹對(duì)原語(yǔ)文件進(jìn)行語(yǔ)義轉(zhuǎn)換,生成對(duì)應(yīng)的Spark代碼;
所述步驟13中利用Xtend生成代碼生成器,建立轉(zhuǎn)換原語(yǔ)與Spark代碼之間的映射的實(shí)現(xiàn)過程如下:
步驟50:將原語(yǔ)ExucuteTranformation轉(zhuǎn)化為Spark程序的執(zhí)行入口,且調(diào)用輸入數(shù)據(jù)模型和輸出數(shù)據(jù)模型的靜態(tài)方法實(shí)現(xiàn)輸入輸出;
步驟51:將原語(yǔ)Domain_input和Domain_output轉(zhuǎn)化為對(duì)應(yīng)輸入數(shù)據(jù)模型和輸出數(shù)據(jù)模型的類文件;
步驟52:原語(yǔ)ExucuteRule對(duì)應(yīng)spark平臺(tái)上對(duì)RDD的操作集合,組成ExucuteRule的原語(yǔ)分別對(duì)應(yīng)spark平臺(tái)上的具體操作;
步驟53:將原語(yǔ)MatchType中的name屬性對(duì)應(yīng)Spark中RDD的創(chuàng)建;
步驟54:將原語(yǔ)Filter對(duì)MatchType對(duì)應(yīng)的RDD進(jìn)行原語(yǔ)Filter定義的過濾操作,調(diào)用RDD的Filter函數(shù);
步驟55:將原語(yǔ)Statistics對(duì)MatchType對(duì)應(yīng)的RDD進(jìn)行原語(yǔ)Statistics定義的統(tǒng)計(jì)操作;
步驟56:將原語(yǔ)JoinKey對(duì)spark平臺(tái)上的兩個(gè)RDD的連接操作,提取關(guān)鍵值,分別生成一個(gè)PairRDDFunctions,再進(jìn)行連接。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于南京大學(xué),未經(jīng)南京大學(xué)許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201611252903.4/1.html,轉(zhuǎn)載請(qǐng)聲明來源鉆瓜專利網(wǎng)。
- 上一篇:汽車
- 下一篇:后罩(小型摩托車用)
- 圖像轉(zhuǎn)換設(shè)備、圖像轉(zhuǎn)換電路及圖像轉(zhuǎn)換方法
- 數(shù)模轉(zhuǎn)換電路及轉(zhuǎn)換方法
- 轉(zhuǎn)換設(shè)備和轉(zhuǎn)換方法
- 占空比轉(zhuǎn)換電路及轉(zhuǎn)換方法
- 通信轉(zhuǎn)換方法、轉(zhuǎn)換裝置及轉(zhuǎn)換系統(tǒng)
- 模數(shù)轉(zhuǎn)換和模數(shù)轉(zhuǎn)換方法
- 轉(zhuǎn)換模塊以及轉(zhuǎn)換電路
- 熱電轉(zhuǎn)換材料、熱電轉(zhuǎn)換元件和熱電轉(zhuǎn)換模塊
- 熱電轉(zhuǎn)換材料、熱電轉(zhuǎn)換元件及熱電轉(zhuǎn)換模塊
- 熱電轉(zhuǎn)換材料、熱電轉(zhuǎn)換元件及熱電轉(zhuǎn)換模塊
- 一種Spark平臺(tái)性能自動(dòng)優(yōu)化方法
- 一種Spark作業(yè)的提交方法及裝置
- Spark性能優(yōu)化控制方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)
- spark任務(wù)的提交方法、裝置和服務(wù)器
- Spark任務(wù)的提交方法、系統(tǒng)、客戶端及服務(wù)端
- 一種提交并守護(hù)spark任務(wù)的方法及裝置
- 用戶任務(wù)的處理方法、裝置、電子設(shè)備和計(jì)算機(jī)可讀介質(zhì)
- Spark任務(wù)處理方法及裝置
- 一種Spark應(yīng)用部署管理方法及相關(guān)設(shè)備
- 數(shù)據(jù)處理方法、裝置、電子設(shè)備、存儲(chǔ)介質(zhì)及程序產(chǎn)品
- 遙控器代碼格式結(jié)構(gòu)及其收發(fā)信方法及裝置
- 在虛擬機(jī)中驗(yàn)證代碼模塊的方法及裝置
- 一種用于代碼的管理方法及裝置
- 虛擬代碼提供系統(tǒng)、生成裝置、驗(yàn)證裝置、提供方法
- 一種自動(dòng)化代碼質(zhì)量檢查方法及系統(tǒng)
- 代碼掃描方法、裝置、計(jì)算設(shè)備及計(jì)算機(jī)存儲(chǔ)介質(zhì)
- 用于更新代碼的方法和裝置
- 前端代碼打包方法、裝置、電子設(shè)備及存儲(chǔ)介質(zhì)
- 一種代碼審查服務(wù)同步方法、裝置及計(jì)算機(jī)設(shè)備
- 一種高效智能源代碼安全管理平臺(tái)





