スパークチュートリアル - (4)スパーク・シェルフェニックス・ベースのデータ・アクセスのHBase

 

パッケージの統計は

インポートcommon.util.timeUtilの
 インポート{SparkConf、SparkContext}。org.apache.sparkを
 インポートorg.apache.spark.sql.SQLContextの
 インポート{COL、カウント、スプリット}。org.apache.spark.sql.functions 


クラスcostMonth { 
  DEFメイン(引数:配列[文字列]):単位 = { 

    ヴァルのCONF = 新しいSparkConf()
     //       .setAppName( "金融試験")
     //       .setMaster( "ローカル") 
    ヴァルSC = 新しいSparkContext(CONF)
     / /     sc.setLogLevel( "WARN") 
    valをsqlContext = 新しいですSQLContext(SC)

    のval DF = sqlContext.load(
       "org.apache.phoenix.spark" マップ( "表" - > "ASSET_NORMAL"  "zkUrl" - > "ノード3、ノード4、NODE5:2181" ) 
    DF。 registerTempTable( "asset_normal" 
    costingWithinデフ(originalValue:フロート、年:INT):ダブル =(originalValue * 0.95)/(年* 365 
    sqlContext.udf.register( "costingWithin" 、costingWithin _)

    costingBeyondデフ(originalValue:フロート):ダブル = originalValue * 0.05 / 365 
    sqlContext.udf.register( "costingBeyond"、costingBeyond _)

    デフ(acceptanceDateを:文字列、年:INT):有効期限が切れブール = timeUtil.dateStrAddYears2TimeStamp(acceptanceDate、timeUtil.SECOND_TIME_FORMAT、年)> のSystem.currentTimeMillis()
    sqlContext.udf.register( "有効期限切れ" _有効期限は、)

    monthSpace(stDate DEF:ストリング、endDateに:文字列)のInt = timeUtil.getMonthSpace(stDate、endDateに)
    sqlContext.udf.register( "monthSpace" 、monthSpace _)

    ヴァルcostDay = sqlContext 
      .SQL(
        "IDを選択し、ASSET_ID、ASSET_NAME、ACCEPTANCE_DATE、FIRST_DEPARTMENT_ID、SECOND_DEPARTMENT_ID、ケースの有効期限が切れる(ACCEPTANCE_DATE、DEPRECIABLE_LIVES_NAME)その後、costingWithin asset_normalからGENERATION_TIMEとして(ORIGINAL_VALUE、DEPRECIABLE_LIVES_NAME)ACTUAL_COSTとして他costingBeyond(ORIGINAL_VALUE)終わり、CURRENT_TIMESTAMP()" 


    //     DF .SHOW(偽)
    costDay.write 
      .format( "org.apache.phoenix.spark" 
      .mode( "上書き" 
      .OPTION( "テーブル"、 "ASSET_FINANCIAL_DETAIL" 
      .OPTION( "zkUrl"、「ノード3、ノード4 、NODE5:2181" 
      .SAVE()

  } 
}

 

LN -s /etc/hbase/conf.cloudera.hbase/hbase-site.xml /etc/spark/conf.cloudera.spark_on_yarn/hbase-site.xml

 

--confシェルスパークspark.executor.extraClassPath =は/ opt / Clouderaの/小包/ CDH-5.14.2-1.cdh5.14.2.p0.3 / libに/火花/ libに/ CF /フェニックス-火花4.14。 0-cdh5.14.2.jar:/opt/cloudera/parcels/CDH-5.14.2-1.cdh5.14.2.p0.3/lib/spark/lib/cf/phoenix-client-4.14.1-HBase-1.4 .jar " --conf " spark.driver.extraClassPath =は/ opt / Clouderaの/小包/ CDH-5.14.2-1.cdh5.14.2.p0.3 / libに/火花/ libに/ CF /フェニックス-スパーク- 4.14。 0-cdh5.14.2.jar:/opt/cloudera/parcels/CDH-5.14.2-1.cdh5.14.2.p0.3/lib/spark/lib/cf/phoenix-client-4.14.1-HBase-1.4 .jar "

 

ヴァルDF = sqlContext.load( "org.apache.phoenix.spark"、マップ( "表"  - > "ASSET_NORMAL"、 "zkUrl"  - > "ノード3、ノード4、NODE5:2181"))

 

参考:

https://blog.csdn.net/dingyuanpu/article/details/52623655

https://www.cnblogs.com/feiyudemeng/p/9254046.html

http://dequn.github.io/2016/11/08/phoenix-spark-setting/

https://community.hortonworks.com/questions/212315/spark2-phoenix-plugin-with-zeppelin.html

https://community.hortonworks.com/content/supportkb/150591/how-to-connect-hbase-and-phoenix-tables-in-secure.html

https://community.hortonworks.com/articles/179762/how-to-connect-to-phoenix-tables-using-spark2.html

https://mvnrepository.com/artifact/org.apache.phoenix/phoenix-spark/4.14.0-cdh5.14.2

https://mvnrepository.com/artifact/org.apache.phoenix/phoenix-client/4.14.1-HBase-1.4

https://blogs.apache.org/phoenix/entry/spark_integration_in_apache_phoenix

http://phoenix.apache.org/phoenix_spark.html#

https://www.cnblogs.com/skyEva/p/5859742.html

おすすめ

転載: www.cnblogs.com/ratels/p/11129744.html