Java 将结果集转换为数据帧
我希望你们中有人能指导我将scala(或java)结果集转换为spark Dataframe 我不能使用这个符号:Java 将结果集转换为数据帧,java,scala,apache-spark,Java,Scala,Apache Spark,我希望你们中有人能指导我将scala(或java)结果集转换为spark Dataframe 我不能使用这个符号: val jdbcDF = spark.read .format("jdbc") .option("url", "jdbc:mysql://XXX-XX-XXX-XX-XX.compute-1.amazonaws.com:3306/") .option("dbtable", "pg_partner") .option("user", "XXX") .option(
val jdbcDF = spark.read
.format("jdbc")
.option("url", "jdbc:mysql://XXX-XX-XXX-XX-XX.compute-1.amazonaws.com:3306/")
.option("dbtable", "pg_partner")
.option("user", "XXX")
.option("password", "XXX")
.load()
所以在提到我之前,请考虑一下
我不能使用这种表示法的原因是我需要使用当前版本的spark(2.2.0)中没有的jdbc配置,因为我想使用最近添加到spark版本2.4中的“queryTimeout”选项,所以我需要在结果集中使用它
任何帮助都将不胜感激
提前谢谢你 试试这个
(尚未尝试,但应稍加修改)
参考资料:
import java.util.Properties
import org.apache.spark.rdd.JdbcRDD
import java.sql.{Connection, DriverManager, ResultSet}
import org.apache.spark.implicits.
val url = "jdbc:mysql://mysql-rfam-public.ebi.ac.uk:4497/Rfam"
val username = "rfamro"
val password = ""
val myRDD = new JdbcRDD( sc, () => DriverManager.getConnection(url, username, password), "select rfam_id, noise_cutoff from family limit ?, ?", 1, 100, 10,
r => r.getString("rfam_id") + ", " + r.getString("noise_cutoff"))
val DF = myRDD.toDF
DF.show
返回:
+-------------------+
| value|
+-------------------+
| 5_8S_rRNA, 41.9|
| U1, 39.9|
| U2, 45.9|
| tRNA, 28.9|
| Vault, 33.9|
| U12, 52.9|
....
....
一个针对公共源mySQL的工作示例
import java.util.Properties
import org.apache.spark.rdd.JdbcRDD
import java.sql.{Connection, DriverManager, ResultSet}
import org.apache.spark.implicits.
val url = "jdbc:mysql://mysql-rfam-public.ebi.ac.uk:4497/Rfam"
val username = "rfamro"
val password = ""
val myRDD = new JdbcRDD( sc, () => DriverManager.getConnection(url, username, password), "select rfam_id, noise_cutoff from family limit ?, ?", 1, 100, 10,
r => r.getString("rfam_id") + ", " + r.getString("noise_cutoff"))
val DF = myRDD.toDF
DF.show
返回:
+-------------------+
| value|
+-------------------+
| 5_8S_rRNA, 41.9|
| U1, 39.9|
| U2, 45.9|
| tRNA, 28.9|
| Vault, 33.9|
| U12, 52.9|
....
....
谢谢你们,我会试一试的。谢谢你们,我会试一试的。。。我将尝试两种解决方案,为我的案例选择最佳答案,但再次感谢dude的支持。很好,但我的解决方案确实有效,它们可能是互补的。我想我已经回答了。我只是提到它,因为我发现很多人不明白这里的行为准则,我在上面。。。我将尝试两种解决方案,为我的案例选择最佳答案,但再次感谢dude的支持。很好,但我的解决方案确实有效,它们可能是互补的。我想我已经回答了。我之所以提到这一点,是因为我发现很多人都不了解这里的行为准则