Apache Spark에서는 DataFrameReader를 사용하여 전체 테이블을 로드하여 외부 데이터베이스에서 데이터를 가져오는 경우가 많습니다. . 그러나 때로는 특정 쿼리의 결과만 가져오는 것이 바람직할 수도 있습니다.
Apache Spark 2.0.0에서는 dbtable 인수로 하위 쿼리를 지정할 수 있습니다. JDBC 소스에서 읽을 때. 이를 통해 전체 테이블이 아닌 특정 쿼리의 결과를 가져올 수 있습니다.
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()
이 예에서는 전체 테이블을 가져오는 대신 Schema.tablename 테이블에서 코드는 하위 쿼리(SELECT foo, bar FROM Schema.tablename) AS tmp를 실행하고 결과를 임시 테이블에 저장합니다. tmp. 그런 다음 DataFrameReader는 임시 테이블 tmp의 데이터를 DataFrame df로 로드합니다.
위 내용은 Apache Spark 2.0.0의 외부 데이터베이스에서 특정 쿼리 결과를 가져오는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!