반응형
Spark java를 사용하여 mariadb에서 데이터를 읽는 방법
Spark와 Java를 사용하여 MariaDB의 표를 읽어야 합니다.
데이터베이스에서 테이블 데이터를 읽을 수 있는 자바 코드를 작성했습니다.연결은 정상적으로 확립되었지만 데이터를 읽는 동안 오류가 발생합니다.테이블 데이터를 데이터 프레임으로 읽으려고 합니다.그러나 열 이름은 결과에서 열 값으로 표시됩니다.아래에 제시된 코드를 찾습니다.
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
import org.apache.spark.sql.Dataset;
import org.apache.spark.sql.Row;
import org.apache.spark.sql.SparkSession;
import static org.apache.spark.sql.functions.col;
public class mariadb_to_csv {
public static void main(String[] args) {
Properties prop = new Properties();
String resourceName = "config.properties";
ClassLoader loader = Thread.currentThread().getContextClassLoader();
try(InputStream resourceStream = loader.getResourceAsStream(resourceName)) {
prop.load(resourceStream);
} catch (IOException e) {
e.printStackTrace();
}
SparkSession spark = SparkSession.builder()
.appName("Java Spark SQL basic example")
.config("spark.some.config.option", "some-value").getOrCreate();
Dataset<Row> jdbcDF = spark.read().format("jdbc")
.option("url","url_address")
.option("driver", "org.mariadb.jdbc.Driver")
.option("dbtable", "source_table")
.option("user", "username")
.option("password", "password")
.load();
jdbcDF.select(col("code"), col("name"), col("isActive"), col("createdByUser"), col("modifiedByUser")).show();
}
}
그 결과 열 이름에는 열 값이 중복됩니다.
이거 왜 이래?
maridb 커넥터에 문제가 있는 것 같습니다.호스트 URL을 "jdbc:mariadb://${Hostname}/${Database}"에서 "jdbc:mysql://${Hostname}:${Port}/${Database}"로 변경하면 문제가 해결되었습니다.
MariaDB와 Dataricks는 또한 Spark를 사용하여 Mariadb에서 데이터를 읽는 방법을 설명하기 위해 연결 URL로 "jdbc"를 사용했습니다.
https://mariadb.com/kb/en/library/mariadb-columnstore-with-spark/ #syslog
https://docs.databricks.com/spark/latest/data-sources/sql-databases.html
언급URL : https://stackoverflow.com/questions/52718788/how-to-read-data-from-mariadb-using-spark-java
반응형
'sourcecode' 카테고리의 다른 글
Node.js(JavaScript)에서 대기하려면 어떻게 해야 합니까?나는 일정 기간 동안 일시 정지할 필요가 있다. (0) | 2022.09.11 |
---|---|
테스트를 구성하기 위한 PHPUnit 베스트 프랙티스 (0) | 2022.09.11 |
정규 표현식 내의 변수를 사용하려면 어떻게 해야 합니까? (0) | 2022.09.11 |
SimpleDateFormat에 대한 액세스 동기화 (0) | 2022.09.06 |
JavaScript를 사용하는 URL의 마지막 세그먼트 (0) | 2022.09.06 |