Spark SQLマルチデータソースの相互作用_第4章

Spark SQLは、プレーンテキスト、json、寄木細工、csv、MySQLなどの複数のデータソースと対話でき
ます。1.異なるデータソースへの書き込み
2.異なるデータソースからの読み取りデータの
書き込み:

パッケージcn.itcast.sql
import java.util.Properties
import org.apache.spark.SparkContext
import org.apache.spark.rdd.RDD
import org.apache.spark.sql。{DataFrame、SaveMode、SparkSession}
オブジェクトWriterDataSourceDemo {
ケースクラスPerson(id:Int、name:String、age:Int)
def main(args:Array [String]):Unit = {
// 1。创建SparkSession
val spark:SparkSession = SparkSession.builder()。master(“ local [*]”)。appName(“ SparkSQL”).
getOrCreate()
val sc:SparkContext = spark.sparkContext
sc.setLogLevel(“ WARN”)
// 2。读取文件
val fileRDD:RDD [String] = sc.textFile (“ D:\ data \ person.txt”)
val linesRDD:RDD [Array [String]] = fileRDD.map(.split( ""))
val rowRDD:RDD [Person] = linesRDD.map(line => Person(line(0).toInt、line(1)、line(2).toInt))
// 3. RDDをDFに変換
//注: RDDにはtoDFメソッドがありません。新しいバージョンでは、それにメソッドを追加する必要があります。暗黙的な変換
インポートspark.implicitsを使用できます。//

注:上記のrowRDDの一般的なタイプは、スキーマ情報を含むPersonです
// // SparkSQLリフレクションによって自動的に
取得され、DF val personDFに追加されます:DataFrame = rowRDD.toDF
//DFを別のデータソースに書き込む=
//テキストデータソースは単一の列のみをサポートし、3つの列があります。;
//personDF.write.text
(“D:\data\output\ text”)personDF.write.json(“ D:\ data \ output \ json”)
personDF.write.csv(“ D:\ data \ output \ csv”)
personDF.write.parquet(“ D:\ data \ output \ parquet”)
val prop = new Properties()
prop.setProperty(“ user”、“ root”)
prop.setProperty(“ password”、“ root” )
personDF.write.mode(SaveMode.Overwrite).jdbc(
“ jdbc:mysql:// localhost:3306 / bigdata?characterEncoding = UTF-8”、“ person”、prop)
println(“筆入成功”)
sc。 stop()
spark.stop()
}
}

データの読み取り:

パッケージcn.itcast.sql
インポートjava.util.Properties
インポートorg.apache.spark.SparkContext
インポートorg.apache.spark.sql.SparkSession
オブジェクトReadDataSourceDemo {
def main(args:Array [String]):Unit = {
// 1 。创建SparkSession
val spark:SparkSession = SparkSession.builder()。master(“ local [*]”)。appName(“ SparkSQL”).
getOrCreate()
val sc:SparkContext = spark.sparkContext
sc.setLogLevel(“ WARN”)
// 2。读取文件
spark.read.json(“ D:\ data \ output \ json”)。show()
spark.read.csv(“ D:\ data \ output \ csv”)。toDF(“ id ”、“ name”、“ age”)。show()
spark.read.parquet(“ D:\ data \ output \ parquet”)。show()
val prop = new Properties()
prop.setProperty(“ user”、 "ルート")
prop.setProperty(“ password”、“ root”)
spark.read.jdbc(
“ jdbc:mysql:// localhost:3306 / bigdata?characterEncoding = UTF-8”、“ person”、prop).show()
sc。 stop()
spark.stop()
}
}

3.概要
1. SparkSQL書き込みデータ:
DataFrame / DataSet.write.json / csv / jdbc
2. SparkSQL読み取りデータ:
SparkSession.read.json / csv / text / jdbc / format

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

おすすめ

転載: blog.csdn.net/qq_45765882/article/details/105561475
おすすめ