복붙노트

[HADOOP] spark jdbc에서 술어 사용하기

HADOOP

spark jdbc에서 술어 사용하기

SQL Server에서 hdfs로 데이터를 가져오고 있습니다. 여기에 내 발언이있다.

val predicates = Array[String]("int_id < 500000", "int_id >= 500000 && int_id < 1000000")

  val jdbcDF = spark.read.format("jdbc")
      .option("url", dbUrl)
      .option("databaseName", "DatabaseName")
      .option("dbtable", table)
      .option("user", "***")
      .option("password", "***")
      .option("predicates", predicates)
      .load()

내 Intellij IDE는 다음과 같이 계속 말합니다.

술어에 확실하지 않아 뭐가 잘못 됐어. 아무도 이것과 함께 무엇이 잘못 볼 수 있습니까? 또한 여기에 가져 오기 크기를 어떻게 사용합니까?

감사.

해결법

  1. ==============================

    1.To 옵션 메소드는 부울, Long, Doubles 또는 String 만 허용합니다. 술어를 Array [String]으로 전달하려면 jdbc 메소드를 형식 메소드에서 지정하는 대신 사용해야합니다.

    To 옵션 메소드는 부울, Long, Doubles 또는 String 만 허용합니다. 술어를 Array [String]으로 전달하려면 jdbc 메소드를 형식 메소드에서 지정하는 대신 사용해야합니다.

    val predicates = Array[String]("int_id < 500000", "int_id >= 500000 && int_id < 1000000")
    
    val jdbcDF = spark.read.jdbc(
      url = dbUrl,
      table = table,
      predicates = predicates,
      connectionProperties = new Properties(???) // user, pass, db, etc.
    )
    

    여기에서 예제를 볼 수 있습니다.

  2. from https://stackoverflow.com/questions/48677883/using-predicates-in-spark-jdbc-read by cc-by-sa and MIT license