springml / spark-sftp

Spark connector for SFTP
Apache License 2.0
100 stars 99 forks source link

Can not create a Path from an empty string #11

Closed rbheemana closed 7 years ago

rbheemana commented 7 years ago

The code is throwing java.lang.IllegalArgumentException. Could you please shed some light on the workaround.

Below is the usage
val df = spark.read. format("com.springml.spark.sftp"). option("host", "ftp-server"). option("username", "uname"). option("password", "pwd"). option("fileType", "csv"). option("inferSchema", "true"). option("copyLatest","true"). option("inferSchema", "false"). option("tempLocation", "/tmp"). load("/file-location/file.CSV")

Output: java.lang.IllegalArgumentException: Can not create a Path from an empty string at org.apache.hadoop.fs.Path.checkPathArg(Path.java:126) at org.apache.hadoop.fs.Path.(Path.java:134) at org.apache.hadoop.util.StringUtils.stringToPath(StringUtils.java:244) at org.apache.hadoop.mapred.FileInputFormat.setInputPaths(FileInputFormat.java:411) at org.apache.spark.SparkContext$$anonfun$hadoopFile$1$$anonfun$29.apply(SparkContext.scala:1013) at org.apache.spark.SparkContext$$anonfun$hadoopFile$1$$anonfun$29.apply(SparkContext.scala:1013) at org.apache.spark.rdd.HadoopRDD$$anonfun$getJobConf$6.apply(HadoopRDD.scala:179) at org.apache.spark.rdd.HadoopRDD$$anonfun$getJobConf$6.apply(HadoopRDD.scala:179) at scala.Option.foreach(Option.scala:257) at org.apache.spark.rdd.HadoopRDD.getJobConf(HadoopRDD.scala:179) at org.apache.spark.rdd.HadoopRDD.getPartitions(HadoopRDD.scala:198) at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:252) at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:250) at scala.Option.getOrElse(Option.scala:121) at org.apache.spark.rdd.RDD.partitions(RDD.scala:250) at org.apache.spark.rdd.MapPartitionsRDD.getPartitions(MapPartitionsRDD.scala:35) at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:252) at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:250) at scala.Option.getOrElse(Option.scala:121) at org.apache.spark.rdd.RDD.partitions(RDD.scala:250) at org.apache.spark.rdd.MapPartitionsRDD.getPartitions(MapPartitionsRDD.scala:35) at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:252) at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:250) at scala.Option.getOrElse(Option.scala:121) at org.apache.spark.rdd.RDD.partitions(RDD.scala:250) at org.apache.spark.rdd.RDD$$anonfun$take$1.apply(RDD.scala:1333) at org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:151) at org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:112) at org.apache.spark.rdd.RDD.withScope(RDD.scala:362) at org.apache.spark.rdd.RDD.take(RDD.scala:1327) at org.apache.spark.rdd.RDD$$anonfun$first$1.apply(RDD.scala:1368) at org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:151) at org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:112) at org.apache.spark.rdd.RDD.withScope(RDD.scala:362) at org.apache.spark.rdd.RDD.first(RDD.scala:1367) at org.apache.spark.sql.execution.datasources.csv.CSVFileFormat.findFirstLine(CSVFileFormat.scala:206) at org.apache.spark.sql.execution.datasources.csv.CSVFileFormat.inferSchema(CSVFileFormat.scala:60) at org.apache.spark.sql.execution.datasources.DataSource$$anonfun$7.apply(DataSource.scala:184) at org.apache.spark.sql.execution.datasources.DataSource$$anonfun$7.apply(DataSource.scala:184) at scala.Option.orElse(Option.scala:289) at org.apache.spark.sql.execution.datasources.DataSource.org$apache$spark$sql$execution$datasources$DataSource$$getOrInferFileFormatSchema(DataSource.scala:183) at org.apache.spark.sql.execution.datasources.DataSource.resolveRelation(DataSource.scala:387) at org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:152) at org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:135) at com.springml.spark.sftp.DatasetRelation.read(DatasetRelation.scala:44) at com.springml.spark.sftp.DatasetRelation.(DatasetRelation.scala:29) at com.springml.spark.sftp.DefaultSource.createRelation(DefaultSource.scala:84) at com.springml.spark.sftp.DefaultSource.createRelation(DefaultSource.scala:43) at org.apache.spark.sql.execution.datasources.DataSource.resolveRelation(DataSource.scala:330) at org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:152) at org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:135) ... 47 elided

samuel-pt commented 7 years ago

@rbheemana What version of spark you are using? Is it 1.6.x or 2.x?

rbheemana commented 7 years ago

2.x

On Jul 12, 2017 at 12:56 AM, <samuel-pt (mailto:notifications@github.com)> wrote:

@rbheemana (https://github.com/rbheemana) What version of spark you are using? Is it 1.6.x or 2.x?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub (https://github.com/springml/spark-sftp/issues/11#issuecomment-314644095), or mute the thread (https://github.com/notifications/unsubscribe-auth/AMEsF_LxxqJubwTUTbxlOavUmH44Wx0fks5sNFHggaJpZM4OPtsb).

springml commented 7 years ago

@rbheemana I am not able to reproduce this issue. I've tried it in Spark 2.1.0 without hadoop. Please let me know the following details

  1. Are you trying this in any notebooks like Jupyter, Zeppelin?
  2. Do you have Spark on top of hadoop?
  3. What hadoop distributions you are using? Like HDP, CDH ...
  4. Or do you use any cloud setup like AWS EMR, Google Dataproc or Azure HDI?
  5. Are you using internal SFTP or SFTP provides like brickftp?
  6. Is it possible to share your setup?
rbheemana commented 7 years ago

Hi,

Are you trying this in any notebooks like Jupyter, Zeppelin? I have tried both Zeppelin and command line, it gave me same error.

Do you have Spark on top of hadoop? Yes.

What hadoop distributions you are using? Like HDP, CDH ... I have HDP latest version.

Or do you use any cloud setup like AWS EMR, Google Dataproc or Azure HDI?

My HDP is installed on AWS EC2 RHEL7 instances.

Are you using internal SFTP or SFTP provides like brickftp? I used internal SFTP

Thanks, Ram

springml commented 7 years ago

@rbheemana Will setup a HDP cluster and update this ticket

springml commented 7 years ago

@rbheemana When we tried with HDP cluster we got similar issue but not the same. We've fixed it and the changes are committed via https://github.com/springml/spark-sftp/commit/3720389daba7e325b8dfcba1c176c4878b7eddf3. Please try this fix and let us know if you still face this issue.

Please note that this fix is not yet pushed into maven repository. To use this fix, build spark-sftp and include it in spark-shell using --jars option

rbheemana commented 7 years ago

Thanks for fixing.. It is working perfectly now..

Cherryko commented 6 years ago

I run Spark SMOTE program from git hub and get the same error . Could you please shed some light on the workaround. 17/11/10 14:10:30 INFO SparkContext: Created broadcast 0 from textFile at loadData.scala:12 [error] (run-main-0) java.lang.IllegalArgumentException: Can not create a Path from an empty string [error] java.lang.IllegalArgumentException: Can not create a Path from an empty string [error] at org.apache.hadoop.fs.Path.checkPathArg(Path.java:127) [error] at org.apache.hadoop.fs.Path.(Path.java:135) [error] at org.apache.hadoop.util.StringUtils.stringToPath(StringUtils.java:241) [error] at org.apache.hadoop.mapred.FileInputFormat.setInputPaths(FileInputFormat.java:362) [error] at org.apache.spark.SparkContext$$anonfun$hadoopFile$1$$anonfun$32.apply(SparkContext.scala:1016) [error] at org.apache.spark.SparkContext$$anonfun$hadoopFile$1$$anonfun$32.apply(SparkContext.scala:1016) [error] at org.apache.spark.rdd.HadoopRDD$$anonfun$getJobConf$6.apply(HadoopRDD.scala:176) [error] at org.apache.spark.rdd.HadoopRDD$$anonfun$getJobConf$6.apply(HadoopRDD.scala:176) [error] at scala.Option.map(Option.scala:145) [error] at org.apache.spark.rdd.HadoopRDD.getJobConf(HadoopRDD.scala:176) [error] at org.apache.spark.rdd.HadoopRDD.getPartitions(HadoopRDD.scala:200) [error] at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:239) [error] at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:237) [error] at scala.Option.getOrElse(Option.scala:120) [error] at org.apache.spark.rdd.RDD.partitions(RDD.scala:237) [error] at org.apache.spark.rdd.MapPartitionsRDD.getPartitions(MapPartitionsRDD.scala:35) [error] at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:239) [error] at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:237) [error] at scala.Option.getOrElse(Option.scala:120) [error] at org.apache.spark.rdd.RDD.partitions(RDD.scala:237) [error] at org.apache.spark.rdd.MapPartitionsRDD.getPartitions(MapPartitionsRDD.scala:35) [error] at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:239) [error] at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:237) [error] at scala.Option.getOrElse(Option.scala:120) [error] at org.apache.spark.rdd.RDD.partitions(RDD.scala:237) [error] at org.apache.spark.rdd.MapPartitionsRDD.getPartitions(MapPartitionsRDD.scala:35) [error] at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:239) [error] at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:237) [error] at scala.Option.getOrElse(Option.scala:120) [error] at org.apache.spark.rdd.RDD.partitions(RDD.scala:237) [error] at org.apache.spark.ShuffleDependency.(Dependency.scala:82) [error] at org.apache.spark.rdd.ShuffledRDD.getDependencies(ShuffledRDD.scala:78) [error] at org.apache.spark.rdd.RDD$$anonfun$dependencies$2.apply(RDD.scala:226) [error] at org.apache.spark.rdd.RDD$$anonfun$dependencies$2.apply(RDD.scala:224) [error] at scala.Option.getOrElse(Option.scala:120) [error] at org.apache.spark.rdd.RDD.dependencies(RDD.scala:224) [error] at org.apache.spark.scheduler.DAGScheduler.org$apache$spark$scheduler$DAGScheduler$$getPreferredLocsInternal(DAGScheduler.scala:1405) [error] at org.apache.spark.scheduler.DAGScheduler.getPreferredLocs(DAGScheduler.scala:1371) [error] at org.apache.spark.SparkContext.getPreferredLocs(SparkContext.scala:1595) [error] at org.apache.spark.rdd.PartitionCoalescer.currPrefLocs(CoalescedRDD.scala:178) [error] at org.apache.spark.rdd.PartitionCoalescer$LocationIterator$$anonfun$6$$anonfun$apply$2.apply(CoalescedRDD.scala:195) [error] at org.apache.spark.rdd.PartitionCoalescer$LocationIterator$$anonfun$6$$anonfun$apply$2.apply(CoalescedRDD.scala:194) [error] at scala.collection.Iterator$$anon$13.hasNext(Iterator.scala:371) [error] at scala.collection.Iterator$$anon$12.hasNext(Iterator.scala:350) [error] at scala.collection.Iterator$$anon$12.hasNext(Iterator.scala:350) [error] at org.apache.spark.rdd.PartitionCoalescer$LocationIterator.(CoalescedRDD.scala:189) [error] at org.apache.spark.rdd.PartitionCoalescer.setupGroups(CoalescedRDD.scala:240) [error] at org.apache.spark.rdd.PartitionCoalescer.run(CoalescedRDD.scala:341) [error] at org.apache.spark.rdd.CoalescedRDD.getPartitions(CoalescedRDD.scala:87) [error] at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:239) [error] at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:237) [error] at scala.Option.getOrElse(Option.scala:120) [error] at org.apache.spark.rdd.RDD.partitions(RDD.scala:237) [error] at org.apache.spark.rdd.MapPartitionsRDD.getPartitions(MapPartitionsRDD.scala:35) [error] at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:239) [error] at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:237) [error] at scala.Option.getOrElse(Option.scala:120) [error] at org.apache.spark.rdd.RDD.partitions(RDD.scala:237) [error] at org.apache.spark.rdd.MapPartitionsRDD.getPartitions(MapPartitionsRDD.scala:35) [error] at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:239) [error] at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:237) [error] at scala.Option.getOrElse(Option.scala:120) [error] at org.apache.spark.rdd.RDD.partitions(RDD.scala:237) [error] at org.apache.spark.rdd.MapPartitionsRDD.getPartitions(MapPartitionsRDD.scala:35) [error] at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:239) [error] at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:237) [error] at scala.Option.getOrElse(Option.scala:120) [error] at org.apache.spark.rdd.RDD.partitions(RDD.scala:237) [error] at org.apache.spark.rdd.MapPartitionsRDD.getPartitions(MapPartitionsRDD.scala:35) [error] at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:239) [error] at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:237) [error] at scala.Option.getOrElse(Option.scala:120) [error] at org.apache.spark.rdd.RDD.partitions(RDD.scala:237) [error] at org.apache.spark.rdd.MapPartitionsRDD.getPartitions(MapPartitionsRDD.scala:35) [error] at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:239) [error] at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:237) [error] at scala.Option.getOrElse(Option.scala:120) [error] at org.apache.spark.rdd.RDD.partitions(RDD.scala:237) [error] at org.apache.spark.SparkContext.runJob(SparkContext.scala:1944) [error] at org.apache.spark.rdd.RDD$$anonfun$reduce$1.apply(RDD.scala:1007) [error] at org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:147) [error] at org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:108) [error] at org.apache.spark.rdd.RDD.withScope(RDD.scala:310) [error] at org.apache.spark.rdd.RDD.reduce(RDD.scala:989) [error] at SMOTE.SMOTE$.runSMOTE(SMOTE.scala:31) [error] at driver$.main(driver.scala:40) [error] at driver.main(driver.scala) [error] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [error] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) [error] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [error] at java.lang.reflect.Method.invoke(Method.java:498) [error] at sbt.Run.invokeMain(Run.scala:89) [error] at sbt.Run.run0(Run.scala:83) [error] at sbt.Run.execute$1(Run.scala:61) [error] at sbt.Run.$anonfun$run$4(Run.scala:73) [error] at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12) [error] at sbt.util.InterfaceUtil$$anon$1.get(InterfaceUtil.scala:10) [error] at sbt.TrapExit$App.run(TrapExit.scala:252) [error] at java.lang.Thread.run(Thread.java:748) 17/11/10 14:10:33 ERROR Utils: uncaught error in thread SparkListenerBus, stopping SparkContext java.lang.InterruptedException at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:998) at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1304) at java.util.concurrent.Semaphore.acquire(Semaphore.java:312) at org.apache.spark.util.AsynchronousListenerBus$$anon$1$$anonfun$run$1.apply$mcV$sp(AsynchronousListenerBus.scala:65) at org.apache.spark.util.Utils$.tryOrStopSparkContext(Utils.scala:1136) at org.apache.spark.util.AsynchronousListenerBus$$anon$1.run(AsynchronousListenerBus.scala:63) 17/11/10 14:10:33 ERROR ContextCleaner: Error in cleaning thread java.lang.InterruptedException at java.lang.Object.wait(Native Method) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:143) at org.apache.spark.ContextCleaner$$anonfun$org$apache$spark$ContextCleaner$$keepCleaning$1.apply$mcV$sp(ContextCleaner.scala:157) at org.apache.spark.util.Utils$.tryOrStopSparkContext(Utils.scala:1136) at org.apache.spark.ContextCleaner.org$apache$spark$ContextCleaner$$keepCleaning(ContextCleaner.scala:154) at org.apache.spark.ContextCleaner$$anon$3.run(ContextCleaner.scala:67) 17/11/10 14:10:33 INFO SparkUI: Stopped Spark web UI at http://127.0.0.1:4040 [debug] Thread run-main-0 exited.17/11/10 14:10:33 INFO DAGScheduler: Stopping DAGScheduler

[debug] Interrupting remaining threads (should be all daemons). [debug] Interrupting thread New I/O worker #1 [debug] Interrupted New I/O worker #1 [debug] Interrupting thread qtp2016764812-49 Acceptor0 SocketConnector@0.0.0.0:38375 [debug] Interrupted qtp2016764812-49 Acceptor0 SocketConnector@0.0.0.0:38375 [debug] Interrupting thread shuffle-client-0 [debug] Interrupted shuffle-client-0 [debug] Interrupting thread qtp2016764812-56 [debug] Interrupted qtp2016764812-56 [debug] Interrupting thread New I/O boss #3 [debug] Interrupted New I/O boss #3 [debug] Interrupting thread Thread-3 [debug] Interrupted Thread-3 [debug] Interrupting thread qtp1820541255-65 [debug] Interrupted qtp1820541255-65 [debug] Interrupting thread SPARK_CONTEXT cleanup timer [debug] Interrupted SPARK_CONTEXT cleanup timer [debug] Interrupting thread sparkDriver-akka.actor.default-dispatcher-5 [debug] Interrupted sparkDriver-akka.actor.default-dispatcher-5 [debug] Interrupting thread qtp1820541255-60 Acceptor0 SelectChannelConnector@0.0.0.0:4040 [error] java.lang.RuntimeException: Nonzero exit code: 1 [error] at sbt.Run$.executeTrapExit(Run.scala:120) [error] at sbt.Run.run(Run.scala:73) [error] at sbt.Defaults$.$anonfun$bgRunTask$5(Defaults.scala:1152) [error] at sbt.Defaults$.$anonfun$bgRunTask$5$adapted(Defaults.scala:1147) [error] at sbt.internal.BackgroundThreadPool.$anonfun$run$1(DefaultBackgroundJobService.scala:359) [error] at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12) [error] at scala.util.Try$.apply(Try.scala:209) [error] at sbt.internal.BackgroundThreadPool$BackgroundRunnable.run(DefaultBackgroundJobService.scala:282) [error] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [error] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [error] at java.lang.Thread.run(Thread.java:748) [error] (compile:run) Nonzero exit code: 1 [error] Total time: 116 s, completed Nov 10, 2017 2:10:36 PM 17/11/10 14:10:37 INFO DiskBlockManager: Shutdown hook called 17/11/10 14:10:37 INFO ShutdownHookManager: Shutdown hook called 17/11/10 14:10:37 INFO ShutdownHookManager: Deleting directory /tmp/spark-73df991b-101f-44df-b410-31db9125cf94

I used hadoop 2.6.0 and Spark 1.5.2 version.

springml commented 6 years ago

@Cherryko - Could you please provide your code. It will be useful to reproduce the issue. What version spark-salesforce connector you are using?

KrishnaThali commented 5 years ago

Hi @springml ,

I am trying to connect to Hive that is present in Google DataProc cluster from R. I am able to establish the connectivity to "local" but when I establish a connectivity to "yarn-cluster", I am getting the below error. Please help me find the route cause.

Error: Error: java.lang.IllegalArgumentException: Can not create a Path from an empty string at org.apache.hadoop.fs.Path.checkPathArg(Path.java:163) at org.apache.hadoop.fs.Path.(Path.java:175) at org.apache.spark.sql.catalyst.catalog.CatalogUtils$.stringToURI(ExternalCatalogUtils.scala:236) at org.apache.spark.sql.internal.SharedState.externalCatalog$lzycompute(SharedState.scala:111) at org.apache.spark.sql.internal.SharedState.externalCatalog(SharedState.scala:102) at org.apache.spark.sql.hive.HiveSessionStateBuilder.externalCatalog(HiveSessionStateBuilder.scala:39) at org.apache.spark.sql.hive.HiveSessionStateBuilder.catalog$lzycompute(HiveSessionStateBuilder.scala:54) at org.apache.spark.sql.hive.HiveSessionStateBuilder.catalog(HiveSessionStateBuilder.scala:52) at org.apache.spark.sql.hive.HiveSessionStateBuilder$$anon$1.(HiveSessionStateBuilder.scala:69) at org.apache.spark.sql.hive.HiveSessionStateBuilder.analyzer(HiveSessionStateBuilder.scala:69) at org.apache.spark.sql.internal.BaseSessionStateBuilder$$anonfun$build$2.apply(BaseSessionStateBuilder.scala:293) at org.apache.spark.sql.internal.BaseSessionStateBuilder$$anonfun$build$2.apply(BaseSessionStateBuilder.scala:293) at org.apache.spark.sql.internal.SessionState.analyzer$lzycompute(SessionState.scala:79) at org.apache.spark.sql.internal.SessionState.analyzer(SessionState.scala:79) at org.apache.spark.sql.execution.QueryExecution.analyzed$lzycompute(QueryExecution.scala:57) at org.apache.spark.sql.execution.QueryExecution.analyzed(QueryExecution.scala:55) at org.apache.spark.sql.execution.QueryExecution.assertAnalyzed(QueryExecution.scala:47) at org.apache.spark.sql.Dataset$.ofRows(Dataset.scala:74) at org.apache.spark.sql.SparkSession.sql(SparkSession.scala:642) 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 sparklyr.Invoke.invoke(invoke.scala:139) at sparklyr.StreamHandler.handleMethodCall(stream.scala:123) at sparklyr.StreamHandler.read(stream.scala:66) at sparklyr.BackendHandler.channelRead0(handler.scala:51) at sparklyr.BackendHandler.channelRead0(handler.scala:4) at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:310) at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:284) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1359) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:935) at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:138) at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:645) at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:580) at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:497) at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:459) at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858) at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:138) at java.lang.Thread.run(Thread.java:748) Error: java.lang.IllegalArgumentException: Can not create a Path from an empty string at org.apache.hadoop.fs.Path.checkPathArg(Path.java:163) at org.apache.hadoop.fs.Path.(Path.java:175) at org.apache.spark.sql.catalyst.catalog.CatalogUtils$.stringToURI(ExternalCatalogUtils.scala:236) at org.apache.spark.sql.internal.SharedState.externalCatalog$lzycompute(SharedState.scala:111) at org.apache.spark.sql.internal.SharedState.externalCatalog(SharedState.scala:102) at org.apache.spark.sql.hive.HiveSessionStateBuilder.externalCatalog(HiveSessionStateBuilder.scala:39) at org.apache.spark.sql.hive.HiveSessionStateBuilder.catalog$lzycompute(HiveSessionStateBuilder.scala:54) at org.apache.spark.sql.hive.HiveSessionStateBuilder.catalog(HiveSessionStateBuilder.scala:52) at org.apache.spark.sql.hive.HiveSessionStateBuilder$$anon$1.(HiveSessionStateBuilder.scala:69) at org.apache.spark.sql.hive.HiveSessionStateBuilder.analyzer(HiveSessionStateBuilder.scala:69) at org.apache.spark.sql.internal.BaseSessionStateBuilder$$anonfun$build$2.apply(BaseSessionStateBuilder.scala:293) at org.apache.spark.sql.internal.BaseSessionStateBuilder$$anonfun$build$2.apply(BaseSessionStateBuilder.scala:293) at org.apache.spark.sql.internal.SessionState.analyzer$lzycompute(SessionState.scala:79) at org.apache.spark.sql.internal.SessionState.analyzer(SessionState.scala:79) at org.apache.spark.sql.execution.QueryExecution.analyzed$lzycompute(QueryExecution.scala:57) at org.apache.spark.sql.execution.QueryExecution.analyzed(QueryExecution.scala:55) at org.apache.spark.sql.execution.QueryExecution.assertAnalyzed(QueryExecution.scala:47) at org.apache.spark.sql.Dataset$.ofRows(Dataset.scala:74) at org.apache.spark.sql.SparkSession.sql(SparkSession.scala:642) 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 sparklyr.Invoke.invoke(invoke.scala:139) at sparklyr.StreamHandler.handleMethodCall(stream.scala:123) at sparklyr.StreamHandler.read(stream.scala:66) at sparklyr.BackendHandler.channelRead0(handler.scala:51) at sparklyr.BackendHandler.channelRead0(handler.scala:4) at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:310) at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:284) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1359) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:935) at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:138) at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:645) at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:580) at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:497) at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:459) at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858) at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:138) at java.lang.Thread.run(Thread.java:748)