<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Scala自定義傳參

      最近在寫Spark導數程序的時候,為了實現程序的多元化,即使用同一套程序,實現不同場景的需求,而參考Spark的org.apache.spark.deploy.master.MasterArguments解析main()方法參數寫法

      @tailrec
        def parameterMatching(args: List[String]): Unit={
          val argsList: List[String] = args.toList
          argsList match {
            case ("--inputPath" | "-i") :: value :: tail =>
              hdfsPath = value
              parameterMatching(tail)
      
            case ("--execSQL" | "-e") :: value :: tail =>
              execSQL = value
              parameterMatching(tail)
      
            case ("--outputSchema" | "-s") :: value :: tail =>
              outputSchema = value
              parameterMatching(tail)
      
            case ("--headLine" | "-h") :: value :: tail =>
              headLine = value
              parameterMatching(tail)
      
            case ("--writeMode" | "-m") :: value :: tail =>
              writeMode = value
              parameterMatching(tail)
      
            case ("--outputPath" | "-o") :: value :: tail =>
              outputPath = value
              parameterMatching(tail)
      
            case ("--numPartitions" | "-n") :: value :: tail =>
              numPartitions = value.toInt
              parameterMatching(tail)
      
            case ("--help") :: tail =>
              printUsageAndExit(0)
      
            case Nil => // No-op
      
            case _ =>
              printUsageAndExit(1)
          }
        }
        def printUsageAndExit(exitCode: Int): Unit ={
          System.err.println(
            "Usage: Hdfs2MppAbsolutePath [options]\n" +
              "\n" +
              "Options:\n" +
              "  -i hdfsPath, --inputPath hdfsPath              讀HDFS文件路徑 (必選。)\n" +
              "  -e execSQL, --execSQL execSQL     對讀數據執行的SQL (可選。default: select * from temp)\n" +
              "  -s outputSchema, --outputSchema outputSchema        寫數據的格式 (可選。default: csv)\n" +
              "  -h headLine, --headLine headLine           是否打印頭標題。(可選。default: true)\n" +
              "  -m writeMode, --writeMode writeMode     寫入數據模式。 (可選。default: append)\n" +
              "  -o outputPath, --outputPath outputPath     寫到本地路徑 (必選。)\n" +
              "  -n numPartitions, --numPartitions numPartitions     設置寫入本地的分區數 (可選。default 1)\n"
          )
          // scalastyle:on println
          System.exit(exitCode)
        }
      

      屆時main()方法內部只要調用這個方法舊可以實現程序更具不同場景,做出不同的導出樣式。

      def main(args: Array[String]): Unit = {
          val argsList: List[String] = args.toList
          println("\n 執行參數匹配:")
          parameterMatching(argsList)
      }
      

      如果有些參數不想傳,也可以使用默認值,這樣也不會影響該程序的正常使用

      object Hdfs2LocalPath { 
          // 加載變量 
          private var hdfsPath: String = _  
          private var execSQL: String = "select * from temp"  
          private var outputSchema: String = "csv"  
          private var headLine: String = "true"  
          private var writeMode: String = "append"  
          private var outputPath: String = _  
          private var numPartitions: Int = 1
      
      }
      
      posted @ 2025-04-10 23:35  MrSponge  Views(16)  Comments(0)    收藏  舉報
      主站蜘蛛池模板: 亚洲最大色综合成人av| 人人妻人人妻人人片色av| 强d乱码中文字幕熟女1000部| 精品亚洲国产成人性色av| 7777精品久久久大香线蕉| 国产乱码日韩亚洲精品成人 | 国产午夜视频在线观看| 无码精品人妻一区二区三李一桐| 日本韩无专砖码高清观看| 福利一区二区不卡国产| 亚洲国产精品午夜福利| 国内精品久久久久影院日本| 亚洲乱码日产精品一二三| 夜夜嗨久久人成在日日夜夜| 人人入人人爱| 久久国产国内精品国语对白| 视频二区中文字幕在线| 无码人妻丰满熟妇啪啪| 国产午夜伦伦午夜伦无码| 精品国产一区av天美传媒| 一本加勒比hezyo无码人妻| 国产伦精品一区二区三区妓女| 亚洲人成小说网站色在线| 亚洲最大成人av在线天堂网| 加勒比无码av中文字幕| 亚洲精品无码日韩国产不卡av| 在线a亚洲老鸭窝天堂| 男女一边摸一边做爽爽| 日韩精品18禁一区二区| 午夜福利在线观看6080| 99热这里只有精品免费播放| 亚洲第一成人网站| 欧美z0zo人禽交另类视频| 亚欧洲乱码视频在线专区| 亚洲欧美v国产蜜芽tv| 亚洲熟妇自偷自拍另欧美| 久久精品国产99久久久古代| 色情无码一区二区三区| 久久中文字幕国产精品| 国产成人亚洲欧美二区综合| 林西县|