Чтение документа из Couchbase 5.x с использованием Spark SQL - PullRequest
0 голосов
/ 13 марта 2019

Я пытаюсь прочитать документы из корзины, используя Spark SQL через spark-shell.

spark-shell --packages com.couchbase.client:spark-connector_2.11:2.2.0

import org.apache.spark.sql.SparkSession
import com.couchbase.spark.sql._
import com.couchbase.client.java.document.JsonDocument 
import com.couchbase.client.java.query.N1qlQuery
import com.couchbase.client.java.view.ViewQuery
import org.apache.spark.sql.sources.EqualTo 

// Configure Spark
val sparkConf = SparkSession.
      builder().
      appName("KeyValueExample").
      master("local[*]").
      config("spark.couchbase.nodes", "135.x.x.x").
      config("spark.couchbase.username", "Administrator").
      config("spark.couchbase.password", "password").
      config("spark.couchbase.bucket.transaction-datastore", "transaction-datastore").
      getOrCreate()

import sparkConf.implicits._
val sc = sparkConf.sparkContext
val sql = sparkConf.sqlContext

// Create a DataFrame with Schema Inference
val cc = sql.read.couchbase(EqualTo("type", "Credit Card"))

sql.read.couchbase () выдает ошибку следующим образом:

19/03/13 13:04:19 WARN Конечная точка: [ноль] [KeyValueEndpoint]: ошибка аутентификации.19/03/13 13:04:19 WARN Конечная точка: [ноль] [KeyValueEndpoint]: ошибка аутентификации.19/03/13 13:04:19 WARN Конечная точка: ошибка при переподключении: com.couchbase.client.core.endpoint.kv.AuthenticationException: ошибка аутентификации в com.couchbase.client.core.endpoint.kv.KeyValueAuthHandler.checkIsAuthed (KeyValueAuthHandler.java:288) по адресу com.couchbase.client.core.endpoint.kv.KeyValueAuthHandler.channelRead0 (KeyValueAuthHandler.java:173) по адресу com.couchbase.client.core.endpoint.kuenel_HaillerHacker52) в com.couchbase.client.deps.io.netty.channel.SimpleChannelInboundHandler.channelRead (SimpleChannelInboundHandler.java:105) в com.couchbase.client.deps.io.netty.channel.AbstractChannelHandlerContext.invoke (AbstractChannelHandlerContext.invoke:356) по адресу com.couchbase.client.deps.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead (AbstractChannelHandlerContext.java:342) по адресу com.couchbase.client.deps.io.netty.channel.AbstractChannel.ContehanChannelChannelChannelChannelChannelChannelChanlerCandlerCon335) на com.couchbase.client.deps.io.netty.handler.codec.MessageToMessageDecoder.channelRead (MessageToMessageDecoder.java:102) в com.couchbase.client.deps.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRej.couchbase.client.deps.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead (AbstractChannelHandlerContext.java:342) в com.couchbase.client.deps.io.netty.channel.AbstractChannelHandlerContext.jabContainercouchbase.client.deps.io.netty.channel.CombinedChannelDuplexHandler $ DelegatingChannelHandlerContext.fireChannelRead (CombinedChannelDuplexHandler.java:438) в com.couchbase.client.deps.io.netty.handler.codeessjecoDecoTeoTeT) в com.couchbase.client.deps.io.netty.handler.codec.ByteToMessageDecoder.channelRead (ByteToMessageDecoder.java:286) в com.couchbase.client.deps.io.netty.channel.CombinedChannelDuplexHandler.ChaninedChannelDuplexHandler.lDuplexHandler.java:253) в com.couchbase.client.deps.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead (AbstractChannelHandlerContext.java:356) в com.couchbase.client.deps.io.netnnelChannelChannelAbstractChannelHandlerContext.java:342) по адресу com.couchbase.client.deps.io.netty.channel.AbstractChannelHandlerContext.fireChannelRead (AbstractChannelHandlerContext.java:335) по адресу com.couchbase.client.deps.io.net.Itler.channelRead (IdleStateHandler.java:286) на com.couchbase.client.deps.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead (AbstractChannelHandlerContext.java:356) на com.couchbase.client.denelhan.Hlient.denelteAHinvokeChannelRead (AbstractChannelHandlerContext.java:342) по адресу com.couchbase.client.deps.io.netty.channel.AbstractChannelHandlerContext.fireChannelRead (AbstractChannelHandlerContext.java:335) по адресу com.couchbase.nel.net.chan.ine $ HeadContext.channelRead (DefaultChannelPipeline.java:1302) в com.couchbase.client.deps.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead (AbstractChannelHandlerContext.java:356) в com.couchio.de.channel.AbstractChannelHandlerContext.invokeChannelRead (AbstractChannelHandlerContext.java:342)в com.couchbase.client.deps.io.netty.channel.DefaultChannelPipeline.fireChannelRead (DefaultChannelPipeline.java:919) в com.couchbase.client.deps.io.netty.channel.nio.AbstractNioByteChannel $ NioByteNefeNeNefeSeNeNefeNeNefeCeNeNefeNeNefeCeNeCeNeNeCeNeNefeCe.Java: 131) в com.couchbase.client.deps.io.netty.channel.nio.NioEventLoop.processSelectedKey (NioEventLoop.java:646) в com.couchbase.client.deps.io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized (NioEventLoop.java:581) на com.couchbase.client.deps.io.netty.channel.nio.NioEventLoop.processSelectedKeys (NioEventLoop.java:498) на com.couchbase.client.denel..netnio.NioEventLoop.run (NioEventLoop.java:460) в com.couchbase.client.deps.io.netty.util.concurrent.SingleThreadEventExecutor $ 2.run (SingleThreadEventExecutor.java:131) в com.couchbase.client.deps.netty.util.concurrent.DefaultThreadFactory $ DefaultRunnableDecorator.run (DefaultThreadFactory.java:138) в java.lang.Thread.run (Thread.java:748)

Пожалуйста, помогите!Заранее спасибо.:)

1 Ответ

1 голос
/ 13 марта 2019

1 - Создать нового пользователя / пароль через Безопасность -> Добавить пользователя

2 - Добавить разрешения для этого пользователя на доступ к корзине.(Если вы находитесь в тестовом окружении, просто добавьте права «Полный администратор»)

3- В своем коде выполните следующие действия:

val sparkConf = SparkSession.
  builder().
  appName("KeyValueExample").
  master("local[*]").
  config("spark.couchbase.nodes", "135.x.x.x").
  config("spark.couchbase.username", "myUser").
  config("spark.couchbase.password", "myPassword").
  config("spark.couchbase.bucket.myBucketName", ""). //it must have a empty string as a parameter (backward compatibility)
  getOrCreate()
...