Spark SQL初体験_第2章

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 がありません

  1. 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

元の記事を238件公開 賞賛された429件 ビュー250,000件

おすすめ

転載: blog.csdn.net/qq_45765882/article/details/105560408