CodeJavaSparkContext sc = new JavaSparkContext(sparkConf); SQLContext
sqlContext = new org.apache.spark.sql.SQLContext(sc);
Map<String, String> map = new HashMap<String, String>(); map.put("zkUrl",
args[2]); map.put("table", args[1]); map.put("driver",
"org.apache.phoenix.jdbc.PhoenixDriver"); // long cnt =
sqlContext.read().format("org.apache.phoenix.spark").options(map).load().count()
DataFrameReader reader = sqlContext.read(); DataFrameReader readerM =
reader.format("org.apache.phoenix.spark"); DataFrameReader readerM2 =
readerM.options(map); Dataset<Row> ds = readerM2.load(); ds.logicalPlan();
long cnt = ds.count(); //
format("org.apache.phoenix.spark").options(map).load().count();
System.out.println("************ cnt " + cnt); Exception18/05/09 12:31:23 INFO
RecoverableZooKeeper: Process identifier=hconnection-0x5ebbde60 connecting to
ZooKeeper ensemble=10.16.129.152:2181Exception in thread "main"
java.sql.SQLNonTransientConnectionException: Cannot load connection class
because of underlying exception:
com.mysql.cj.core.exceptions.WrongArgumentException: Malformed database URL,
failed to parse the main URL sections. at
com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:526) at
com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:513) at
com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:505) at
com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:479) at
com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:489) at
com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:72)
at
com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:124)
at
com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:224)
at java.sql.DriverManager.getConnection(DriverManager.java:664) at
java.sql.DriverManager.getConnection(DriverManager.java:208) at
org.apache.phoenix.mapreduce.util.ConnectionUtil.getConnection(ConnectionUtil.java:98)
at
org.apache.phoenix.mapreduce.util.ConnectionUtil.getInputConnection(ConnectionUtil.java:57)
at
org.apache.phoenix.mapreduce.util.ConnectionUtil.getInputConnection(ConnectionUtil.java:45)
at
org.apache.phoenix.mapreduce.util.PhoenixConfigurationUtil.getSelectColumnMetadataList(PhoenixConfigurationUtil.java:338)
at org.apache.phoenix.spark.PhoenixRDD.toDataFrame(PhoenixRDD.scala:118) at
org.apache.phoenix.spark.PhoenixRelation.schema(PhoenixRelation.scala:60) at
org.apache.spark.sql.execution.datasources.LogicalRelation$.apply(LogicalRelation.scala:77)
at
org.apache.spark.sql.SparkSession.baseRelationToDataFrame(SparkSession.scala:429)
at org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:172) at
org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:146) at
PhoenixToDataFrame.main(PhoenixToDataFrame.java:41) at
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498) at
org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:775)
at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:180) at
org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:205) at
org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:119) at
org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)Caused by:
com.mysql.cj.core.exceptions.UnableToConnectException: Cannot load connection
class because of underlying exception:
com.mysql.cj.core.exceptions.WrongArgumentException: Malformed database URL,
failed to parse the main URL sections. at
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at
com.mysql.cj.core.exceptions.ExceptionFactory.createException(ExceptionFactory.java:54)
at
com.mysql.cj.core.exceptions.ExceptionFactory.createException(ExceptionFactory.java:93)
... 23 moreCaused by: com.mysql.cj.core.exceptions.WrongArgumentException:
Malformed database URL, failed to parse the main URL sections. at
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at
com.mysql.cj.core.exceptions.ExceptionFactory.createException(ExceptionFactory.java:54)
at
com.mysql.cj.core.conf.url.ConnectionUrlParser.parseConnectionString(ConnectionUrlParser.java:134)
at
com.mysql.cj.core.conf.url.ConnectionUrlParser.<init>(ConnectionUrlParser.java:124)
at
com.mysql.cj.core.conf.url.ConnectionUrlParser.parseConnectionString(ConnectionUrlParser.java:113)
at
com.mysql.cj.core.conf.url.ConnectionUrl.getConnectionUrlInstance(ConnectionUrl.java:192)
at
com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:194)
... 22 more