シリーズスパーク - ゼロからSparkSQLプログラミングを学ぶために(下)

<成果物>のmysql-コネクタ-javaの</たartifactId> <バージョン> 5.1.32 </バージョン> </依存関係> <! - スパークSQL依存 - > <依存> <groupIdを> org.apache.spark </ groupIdをSparkContextに通っているSparkSQLコアAPIとしてDataFrame1.DataFrameを動作> <たartifactId>火花sql_2.11 </たartifactId> <バージョン> 2.0.2 </バージョン> </依存> </依存関係> 6. Javaソース、次のように買収は、コードは次のとおりです。1 //あなたがタスクを提出する必要があるのappNameを、スパークセッションを作成し、指定します。ヴァルスパーク= newSparkSession.Builder()。appNameは( "CaseClassSchema")。マスター( "[2]ローカル")。getOrCreate()// 2.取得SparkContext、後続のすべての操作がSparkSQLこのコンテキストを必要とします。ヴァルのSC:SparkContext = spark.sparkContext、指定されたマスターsparkSQL実行環境上では、クラスタは、ローカル[2]のタスクを実行するために2つのスレッドのローカルスタンドアロンモードを指定する場合、ローカルすることができてもよいです地元の小文字する必要があることに注意してください。SparkSession SparkContextは彼のサポートHiveContextとSparkContextのアップグレードバージョンです。// 3:2。我々は、対応するデータフレームSparkContext、次のコードを介してデータを取得することができます。DFval lineRddに変換RDDスキーマによって取得RDDの各行:RDD [配列[文字列]] = sc.textFile( "HDFS:// node01:8020 / spark_res / people.txt").MAP(_。スプリット( ""))ヴァルpeopleRdd:RDD [人] = lineRdd.map(X =>人(X(0)、X(1).toInt))インポートspark.implicits._val peopleDF:データフレーム= peopleRdd.toDF // 4. DFオペレーティングpeopleDF.printSchema()peopleDF.show()のprintln(peopleDF.head())のprintln(peopleDF.count())peopleDF.columns.foreach(printlnの)データフレームの使用前に、パッケージには、オンにする必要がありますそれ以外の場合はtoDF方法ではないでしょう。次のように二つの方法、DSLおよびSQLで3.DataFrame SQL操作は、コードは次のとおりです。//DSLpeopleDF.select( "名前"、 "年齢").SHOW()peopleDF.filter($ "年齢"> 20).groupBy( "名前 ")。)(カウント。// SQLpeopleDF.createOrReplaceTempView(ショー" t_people ")をspark.sql(" 年齢DESCでt_peopleためSELECT * FROM「)。操作はsparkContextとSparkSessionを完全show4.SQL閉じなければならないされた後、コードされていますsc.stop()と火花。、 "ルート")properties.setProperty( "パスワード"、 "123456")resultDF.write.jdbc( "JDBCます。mysql://192.168.52.105:3306 / iplocation"、 "spark_save_result"、プロパティ)//近いsparkcontext sparksession }} .. resultDF.writeは、DataFrameWriterを返すことに注意してください。1.このような結果は、SQLのいずれかに格納されていてもよい、とによるAPIの便宜のために、そのようなテキスト、JSON、オーク、CSV等JDBCなど、複数のフォーマットで格納することができます。上書き:内部データファイルはappendを書き直し:ファイルの最後には無視して、コンテンツの追加:ファイルが既に運転を無視存在する場合、システムは、いくつかの省電力モードは、モード(文字列)で指定することができます提供していますデータの保存については、2。エラー:ファイルが存在する場合、デフォルトのオプションは、例外がまずSparkSQLコアAPIのデータフレームを導入し、8結論1. SparkSQLシリーズをスローされ、内部のデータフレームは、分散データ・セットとスキーマのメタ情報のRDDの基礎を分割しました。データフレームのSQLコードは、効率的な処理コードになるため、実行前に触媒の最適化を通過します。その後、我々は、スパーク・シェルとJava APIの両方のクライアントウィンドウの操作データフレームによって導入しました。2.二つの方法でデータフレームを作成します:1はrdd.toDF直接RDDによりDATAFRAMEに変換されます。図2は、直接spark.read様々なデータ形式を読み出します。df.printSchema 1.ビューのデータ構造:3二つの方法でコンテンツデータフレームを確認してください。2. df.showを介してデータの内容を表示します。4。DFは、データを操作するSQLのDSLと2つのスタイルを提供します。DSLのスタイルについては、その上の一般的な方法の選択()フィルタ()とがあります。この記事の後半5.は、MySQLとの対話SparkSQL方法について説明し、加えて、インタラクティブな寄木張り、ORC、JSON、ハイブ、JDBC、アブロプロトコルドキュメントをサポートしています。


文章来源于公总号黑马程序员广州中心(itheimagz)更多资源请关注




おすすめ

転載: blog.51cto.com/14500648/2430115