冬休み(X)

1。スパークSQLの基本的な操作
{ " ID "1" 名前"" エラ"" 年齢"36 }
{ " ID "2" 名称"" ボブ"" 年齢"29 }
{ " ID "3" 名前"" ジャック"" 年齢"29 }
{ " ID "4" 名前"" ジム"" 年齢"28 }
{ " ID "5" 名前"" デイモン" }
{ " ID "5" 名前"" デイモン" }
まずemployee.jsonにデータフレームを作成し、Scalaの文は次の手順を実行し、書き込み:
データフレームを作成します
 
スカラ>輸入org.apache.spark.sql.SparkSession
スカラ>ヴァルスパーク= SparkSession.builder()。getOrCreate()
スカラ>輸入spark.implicits._
スカラ>ヴァルDF = spark.read.json( "ファイル:///usr/local/spark/employee.json")
 
(1)すべてのデータのクエリデータフレーム
スケール> df.show()
(2)すべてのデータを照会し、重複データを削除します
スカラ> df.distinct()。ショー()
(3)は、すべてのデータを照会するときに印刷IDフィールドを削除します
スカラ> df.drop( "ID")。ショー()
(4)スクリーニング年齢> 20本の記録
スカラ> df.filter(DF( "年齢")> 30).SHOW()
(5)名前によるデータパケット
スカラ> df.groupBy( "名前")。)(カウント。ショー()
(6)データは、名前で昇順に配置されています
スカラ> df.sort(DF( "名前")。ASC)(.SHOW)
(7)データ線を除去する前に3
スカラ> df.take(3)或スカラ座> df.head(3)
(8)は、name列のすべてのレコードを照会すると、そのエイリアスはユーザー名です
スカラ> df.select(DF( "名前")。) "ユーザ名"(など)。(見せます)
(9)平均年齢の年齢を問い合わせます
スカラ> df.agg( "年齢" - > "平均")
(10)歳の最低年齢を問い合わせます
スカラ> df.agg( "年齢" - > "分")
2。プログラミングは、データフレームRDDに変換されます
ソース・ファイルシステムのUbuntuは/ usr / local /スパークに保存されたデータをコピーし、(ID、名前、年齢を含む)以下のように、
、1名:Employee.txtという名前の、データフレームは、変換キーを押しIDを達成RDDから取得したエラ、年齢:36フォーマット
すべてのデータのデータフレームをプリントアウト。コードを入力してください。(することができる一つの方法を選択してください)
1、エラ、36 
2、ボブ、29 
3、ジャック、29

カレントディレクトリは/ usr / local /火花/ mycode / rddtodf、MKDIR -pカレントディレクトリに新しいディレクトリを仮定

SRC /メイン/のスカラ座、そして地元のスパークmycodeのrddtodf SRCメイン/下/ / / / / / / ScalaのUSR新しいディレクトリを作成
オブジェクト・スキーマの特定のタイプを含むINFER RDDに反射、RDDの公知の適切なデータ構造を使用してrddtodf.scala、
変換;
輸入org.apache.spark.sql.catalyst.encoders.ExpressionEncoder
 輸入org.apache.spark.sql.Encoderの
 輸入spark.implicits._
オブジェクトRDDtoDF {
 DEFメイン(引数:配列[文字列]){
ケースの クラス従業員(ID:ロング、名前:文字列、年齢:ロング)
ヴァルemployeeDF =  
spark.sparkContext.textFile( "ファイル:///usr/local/spark/employee.txt")の.map(_スプリット( ""。 ))をマッピング(で。
賛辞 =>従業員(属性(0).trim.toInt、属性(1)、属性(2 ).trim.toInt))。toDF()
employeeDF.createOrReplaceTempView( "従業員" 
ヴァルemployeeRDD = spark.sql( "SELECT ID、名前、従業員からの年齢" 
employeeRDD.map(T => "ID:" + T(0)+ " "+"名: "+ T(1)+"、 "+"年齢" + T(2 ))を表示()。
 }}

 

おすすめ

転載: www.cnblogs.com/sonofdemon/p/12289410.html