SparkSession用のSparkSQLドライバー
SparkSessionはSparkSQLまたはHiveSQLを実行できます
1.データフレームを作成する
テキストファイルを
作成する1. ID、名前、年齢の3つの列をスペースで区切ってローカルにファイルを作成し、hdfs
vim /root/person.txtにアップロードします。
1 zhangsan 20
2 lisi 29
3 wangwu 25
4 zhaoliu 30
5 tianqi 35
6神戸40
データファイルをHDFSにアップロードします。
hadoop fs -put /root/person.txt /
2.スパークシェルで次のコマンドを実行してデータを読み取り、列セパレータを使用して各行のデータを分割します
打开spark-shell
/ export / servers / spark / bin / spark-shell
RDDを作成する
val lineRDD = sc.textFile(“ hdfs:// node01:8020 / person.txt”).map(_。split( ""))// RDD [Array [String]]
3.ケースクラスを定義する(テーブルスキーマに相当)
ケースクラスPerson(id:Int、name:String、age:Int)
4. RDDとケースクラスを関連付ける
val personRDD = lineRDD.map(x => Person(x(0).toInt、x(1)、x(2).toInt))// RDD [個人]
5. RDDをDataFrameに変換する
val personDF = personRDD.toDF // DataFrame
6.データとスキーマを表示する
personDF.show
±–±-------±– +
| id | name | age |
±–±-------±– +
| 1 | zhangsan | 20 |
| 2 | lisi | 29 |
3 | wangwu | 25 |
| 4 | zhaoliu | 30 |
| 5 | tianqi | 35 |
| 6 | kobe | 40 |
±–±-------±– +
//メタデータ構造
personDF.printSchema
7.登録フォーム
personDF.createOrReplaceTempView(“ t_person”)
8. SQLを実行する
spark.sql(“ select id、name from t_person where id> 3”)。show
9. DataFrameはSparkSessionを介して構築することもできます
val dataFrame = spark.read.text(“ hdfs:// hadoop01:8020 /
person.txt ”)dataFrame.show //注:直接読み取ったテキストファイルには、完全なスキーマ情報
dataFrame.printSchema がありません
- jsonファイルの読み取り
1.データファイル
Sparkインストールパッケージでjsonファイルを使用
/export/servers/spark/examples/src/main/resources/people.json
{“ name”:“ Michael”}
{“ name”:“ Andy”、“ age”:30}
{“ name”:“ Justin” 、「年齢」:19}
2. Sparkシェルで次のコマンドを実行してデータを読み取ります
val jsonDF = spark.read.json(“ file:///export/servers/spark/examples/src/main/resources/people.json”)
3.次に、DataFrameの関数操作を使用できます。
jsonDF.show
//注:jsonファイル自体にスキーマ情報が含まれているため、jsonファイルを直接読み取るとスキーマ情報が含まれるため、SparkSQLは自動的に解析できます。
2.2.3。寄木細工のファイルを読む
1.データファイル
Sparkインストールパッケージの下の寄木細工のファイルを使用します
/export/servers/spark/examples/src/main/resources/users.parquet
2. Sparkシェルで次のコマンドを実行してデータを読み取ります
val parquetDF = spark.read.parquet(“ file:///export/servers/spark/examples/src/main/resources/users.parquet”)
3.次に、DataFrameの関数操作を使用できます。
parquetDF.show
//注:寄木細工ファイルは列情報を保存するため、寄木細工ファイルを直接読み取ることにはスキーマ情報があります。
2.データセットを作成する
1. spark.createDatasetを使用してデータセットを作成します
val fileRdd = sc.textFile(“ hdfs:// node01:8020 / person.txt”)// RDD [String]
val ds1 = spark.createDataset(fileRdd)// DataSet [String]
ds1.show
2. RDD.toDSメソッドを使用してDataSetを生成します
ケースクラスPerson(name:String、age:Int)
val data = List(Person(“ zhangsan”、20)、Person(“ lisi”、30))// List [Person]
val dataRDD = sc.makeRDD(data)
val ds2 = dataRDD.toDS // Dataset [Person]
ds2.show
3. DataSetを生成するためのDataFrame.as [generic]変換
ケースクラスPerson(name:String、age:Long)
val jsonDF = spark.read.json(“ file:///export/servers/spark/examples/src/main/resources/people.json”)
val jsonDS = jsonDF .as [Person] // DataSet [Person]
jsonDS.show
4.DataSetはクエリのテーブルとして登録することもできます
jsonDS.createOrReplaceTempView( "t_person")
spark.sql( "select * from t_person")。show