Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mengambil Keputusan Pertanyaan Khusus daripada Pangkalan Data Luar dalam Apache Spark 2.0.0?

Bagaimana untuk Mengambil Keputusan Pertanyaan Khusus daripada Pangkalan Data Luar dalam Apache Spark 2.0.0?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-02 02:46:08669semak imbas

How to Fetch Specific Query Results from External Databases in Apache Spark 2.0.0?

Mengambil Keputusan Pertanyaan daripada Pangkalan Data Luar dalam Apache Spark 2.0.0

Dalam Apache Spark, mengambil data daripada pangkalan data luaran selalunya dilakukan dengan memuatkan keseluruhan jadual menggunakan DataFrameReader . Walau bagaimanapun, kadangkala adalah wajar untuk mengambil hanya hasil pertanyaan tertentu.

Menggunakan Subkueri

Dalam Apache Spark 2.0.0, adalah mungkin untuk menentukan subkueri sebagai argumen dbtable apabila membaca daripada sumber JDBC. Ini membolehkan anda mengambil hasil pertanyaan khusus dan bukannya keseluruhan jadual.

Pertimbangkan coretan kod berikut yang ditulis dalam Pyspark:

from pyspark.sql import SparkSession

spark = SparkSession\
    .builder\
    .appName("spark play")\
    .getOrCreate()    

df = spark.read\
    .format("jdbc")\
    .option("url", "jdbc:mysql://localhost:port")\
    .option("dbtable", "(SELECT foo, bar FROM schema.tablename) AS tmp")\
    .option("user", "username")\
    .option("password", "password")\
    .load()

Dalam contoh ini, bukannya mengambil keseluruhan jadual schema.tablename, kod melaksanakan subquery (SELECT foo, bar FROM schema.tablename) AS tmp dan menyimpan keputusan dalam tmp jadual sementara. DataFrameReader kemudiannya memuatkan data daripada tmp jadual sementara ke dalam DataFrame df.

Atas ialah kandungan terperinci Bagaimana untuk Mengambil Keputusan Pertanyaan Khusus daripada Pangkalan Data Luar dalam Apache Spark 2.0.0?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn