Je dois appeler un PROC stocké dans DB2 qui prend 3 arguments et retourne un entier. Quelqu'un peut-il m'aider à appeler ce SP du code Spark Scala. Vous trouverez ci-dessous la procédure stockée dans db2.
DB@ SQL Error: SQLCODE=-104, SQLSTATE=42601 com.ibm.db2.jcc.am.SqlSyntaxErrorException: DB2 SQL Error: SQLCODE=-104, SQLSTATE=42601
3 Réponses :
Je pense que vous devriez utiliser une connexion JDBC directement au lieu de l'étincelle, car votre procédure stockée ne renvoie qu'une entière. Si vous avez besoin de cette valeur, vous pouvez récupérer cela de l'appel à la procédure stockée, mais en utilisant SCALA sans utiliser Spark. P>
Vous pouvez trouver un échantillon à HTTPS : //www.ibm.com/support/nowledgeCenter/ssepek_12.0.0/java/src/tpc/imjcc_tjvcsp.html p>
C'est le moyen standard de l'appeler dans n'importe quelle langue: P>
Je recommande SCANKIJDBC
Coordonnées Maven (Scala 2.11): Org.scalikeJDBC: SCOPIDJDBC_2. 11: 3.4.1 CODE> P>
sql"""(CALL TEST_PROC('2020-07-08','TEST',''TEST','TEST,?))
as proc_result;""".execute.apply()
Vous ne pouvez pas appeler la procédure stockée à l'aide d'Apache Spark, bien que chargez les mêmes données à l'aide de la charge d'étincelle
chargée Fron DB2 P>
val sqlContext = new org.apache.spark.sql.SQLContext(sc) val df= sqlContext.load("jdbc", Map( "url" -> "jdbc:db2://xx.xx.xx.xx:50000/SQLDB:securityMechanism=9;currentSchema=vaquarkhan;user=<ur-username>;password=xxxxx;", "driver" -> "com.ibm.db2.jcc.DB2Driver", "dbtable" -> "scheam.TableName"))
Pas possible...