小编cov*_*efe的帖子

AbstractMethodError创建Kafka流

我正在尝试使用createDirectStream方法打开Kafka(尝试版本0.11.0.2和1.0.1)流并获取此AbstractMethodError错误:

Exception in thread "main" java.lang.AbstractMethodError
    at org.apache.spark.internal.Logging$class.initializeLogIfNecessary(Logging.scala:99)
    at org.apache.spark.streaming.kafka010.KafkaUtils$.initializeLogIfNecessary(KafkaUtils.scala:39)
    at org.apache.spark.internal.Logging$class.log(Logging.scala:46)
    at org.apache.spark.streaming.kafka010.KafkaUtils$.log(KafkaUtils.scala:39)
    at org.apache.spark.internal.Logging$class.logWarning(Logging.scala:66)
    at org.apache.spark.streaming.kafka010.KafkaUtils$.logWarning(KafkaUtils.scala:39)
    at org.apache.spark.streaming.kafka010.KafkaUtils$.fixKafkaParams(KafkaUtils.scala:201)
    at org.apache.spark.streaming.kafka010.DirectKafkaInputDStream.<init>(DirectKafkaInputDStream.scala:63)
    at org.apache.spark.streaming.kafka010.KafkaUtils$.createDirectStream(KafkaUtils.scala:147)
    at org.apache.spark.streaming.kafka010.KafkaUtils$.createDirectStream(KafkaUtils.scala:124)
Run Code Online (Sandbox Code Playgroud)

这就是我所说的:

val preferredHosts = LocationStrategies.PreferConsistent
    val kafkaParams = Map(
      "bootstrap.servers" -> "localhost:9092",
      "key.deserializer" -> classOf[IntegerDeserializer],
      "value.deserializer" -> classOf[StringDeserializer],
      "group.id" -> groupId,
      "auto.offset.reset" -> "earliest"
    )

    val aCreatedStream = createDirectStream[String, String](ssc, preferredHosts,
      ConsumerStrategies.Subscribe[String, String](topics, kafkaParams))
Run Code Online (Sandbox Code Playgroud)

我有Kafka在9092运行,我能够创建生产者和消费者,并在他们之间传递消息,所以不知道为什么它不能使用Scala代码.任何想法都赞赏.

scala apache-kafka apache-spark spark-streaming

13
推荐指数
2
解决办法
7800
查看次数

Elasticsearch Go嵌套查询

我正在使用olivere的弹性Go库来运行弹性查询 - https://godoc.org/github.com/olivere/elastic#NestedQuery

我正在尝试查询的数据如下所示:

                "_source": {
                    "field1": "randVal1",
                    "field2": "randVal2",
                    "nestedfield": {
                        "ind1": "val1"
                    }
                }
Run Code Online (Sandbox Code Playgroud)

我正在尝试nestedfield使用NestedQueryElastic Go库中的调用运行查询,如下所示:

aquery := elastic.NewTermQuery("ind1", "val1")
query := elastic.NestedQuery("nestedfield", aquery)
Run Code Online (Sandbox Code Playgroud)

但我得到一个错误说明:

转换为NestedQuery的参数太多了

我试图检索所有的文件,其中ind1nestedfieldval1.非常感谢构建此查询的任何帮助.

编辑:

我将其更改为NewNestedQuery,现在它没有给出错误.但是,它不会返回任何结果,即使该文档存在于索引中并且我能够查询非嵌套字段.

我试过这个:

aquery := elastic.NewTermQuery("ind1", "val1")
query := elastic.NewNestedQuery("nestedfield", aquery)
Run Code Online (Sandbox Code Playgroud)

还有这个:

query := elastic.NewNestedQuery("nestedfield", elastic.NewMatchQuery("nestedfield.ind1", "val1"))
Run Code Online (Sandbox Code Playgroud)

但他们都给出了0结果.知道我做错了什么吗?

编辑#2

映射是:

"field1": { "type": "string" },
"field2": { "type": "string" },
"nestedfield": {
                    "type": "nested"
                }
Run Code Online (Sandbox Code Playgroud)

最终起作用的是:

query := elastic.NewMatchQuery("nestedfield.ind1", "val1")
Run Code Online (Sandbox Code Playgroud)

我能够在'nestedfield'中添加其他字段并执行以下查询: …

go elasticsearch elasticsearch-plugin elasticsearch-query

10
推荐指数
1
解决办法
1141
查看次数

尝试使用PHP检查MySQL数据库中是否已存在用户名

我已经查看过与我的问题类似的许多其他帖子,并尽可能地实现了他们的解决方案(据我所知).但是,每次执行此脚本时,都会执行else块中的代码(即使输入的用户名是已存在的用户名).

表名是"用户",我要搜索的列是"用户名".我的表格中的输入被读入$username,我验证它是使用echo正确读取的.$con包含与服务器的连接.

在某些时候,我也放入echo $query(没有打印)和echo mysql_num_rows($query)(没有打印).

这是代码的相关部分.真的很感激一些提示.

$query = mysql_query("SELECT username FROM Users WHERE username=$username", $con);

  if (mysql_num_rows($query) != 0)
  {
      echo "Username already exists";
  }

  else
  {
    ...
  }
Run Code Online (Sandbox Code Playgroud)

编辑:显然我应该使用mysqli为我的服务器和我检查num_rows的方式是通过执行$ query-> num_rows,因为它是对象的属性.感谢您的帮助!

php mysql sql

9
推荐指数
2
解决办法
10万
查看次数

如何使用内部的理解?

我有这样的理解:

for {
      (value1: String, value2: String, value3: String) <- getConfigs(args)
      // more stuff using those values
}
Run Code Online (Sandbox Code Playgroud)

getConfigs返回一个Either[Throwable, (Seq[String], String, String)],当我尝试编译时,我收到此错误:

value withFilter is not a member of Either[Throwable,(Seq[String], String, String)]
Run Code Online (Sandbox Code Playgroud)

如何Either在for comprehension中使用此方法(返回一个)?

scala pattern-matching either for-comprehension

7
推荐指数
1
解决办法
486
查看次数

无法将 Chrome 设置为 OS X 中的默认网络浏览器

在我的 Mac(Catalina 版本 10.15.5)上,我无法将默认浏览器更改为 Google Chrome。

当我转到Settings->General下时Default Web Browser,我只能看到 Safari 和 Firefox 的选项。当我打开 Chrome 设置并单击 时Make default,我收到一条通知说

Do you want to change your default web browser to "com.google.Chrome" or keep using "Safari"?
Run Code Online (Sandbox Code Playgroud)

我点击Use com.google.Chrome但它没有做任何事情,链接仍然在 Safari 中打开。关于可能发生的事情以及如何解决的任何想法?

safari macos google-chrome default-browser

6
推荐指数
3
解决办法
2515
查看次数

运行parquet-tools jar的参数无效

我正在尝试使用parquet-tools.jar(https://github.com/Parquet/parquet-mr/tree/master/parquet-tools)从镶木地板文件中打印一列。我正在使用以下命令:

java -jar parquet-tools-1.6.1-SNAPSHOT.jar dump -c COLUMNNAME someParquet.parquet

但是我得到:

Invalid arguments: missing required arguments

usage: parquet-dump [option...] <input>
where option is one of:
    -c,--column <arg>  Dump only the given column, can be specified more than
                       once
    -d,--disable-data  Do not dump column data
       --debug         Enable debug output
    -h,--help          Show this help string
    -m,--disable-meta  Do not dump row group and page metadata
       --no-color      Disable color output even if supported
where <input> is the parquet file to print to stdout
Run Code Online (Sandbox Code Playgroud)

不知道我在哪里弄错了语法。

java jar parquet

5
推荐指数
1
解决办法
553
查看次数

无效元数据和Impala中的刷新命令之间的区别?

我在此链接上看到了影响Impala 1.1版的内容

从Impala 1.1开始,REFRESH语句仅适用于现有表。对于新表,您需要发出“ INVALIDATE METADATA”语句。

这对于Impala的更高版本仍然适用吗?

invalidation impala

5
推荐指数
1
解决办法
1万
查看次数

Terraform 未找到匹配的安全组

我正在尝试为开发和 QA 环境配置我的 terraform,每个环境都有自己的安全组,我用data

data "aws_security_group" "ssh" {
  name = "SG-SSH"
}

data "aws_security_group" "postgres" {
  name = "SG-Postgres"
}
Run Code Online (Sandbox Code Playgroud)

有没有办法根据目标环境指定拉入哪些安全组?我试过这个:

locals {
  sgs = {
    dev  = ["${data.aws_security_group.postgres.id}", "${data.aws_security_group.ssh.id}"]
    qa   = ["${data.aws_security_group.postgres.id}"]
  }
}
Run Code Online (Sandbox Code Playgroud)

然后我用 来引用"${local.sgs[var.env]}"。但是,ssh安全组仅存在于开发环境中,因此当我针对 QA 环境时,我仍然得到:

data.aws_security_group.ssh: data.aws_security_group.ssh: no matching SecurityGroup found
Run Code Online (Sandbox Code Playgroud)

amazon-web-services terraform aws-security-group terraform-provider-aws

5
推荐指数
1
解决办法
5004
查看次数

Scala创建多行JSON字符串

我正在尝试在Scala中创建多行字符串,如下所示。

val errorReport: String =
    """
      |{
      |"errorName":"blah",
      |"moreError":"blah2",
      |"errorMessage":{
      |         "status": "bad",
      |         "message": "Unrecognized token 'noformatting': was expecting 'null', 'true', 'false' or NaN
 at [Source: (ByteArrayInputStream); line: 1, column: 25]"
      | }
      |}
      """
   .stripMargin
Run Code Online (Sandbox Code Playgroud)

这是一个嵌套的JSON,在我打印时无法正确显示。message内部的字段errorMessage(调用getMessage的实例的输出Throwable)引起问题,因为它看起来像在前面有换行符一样

at [Source: ...

如果我摆脱了这一行,JSON将正确显示。任何有关如何正确格式化此格式的想法都将受到赞赏。

编辑:问题是换行符。因此,我认为问题更为简洁-如何在三重引号中处理换行符,以便仍将其识别为JSON?

编辑2:message由像这样的变量设置:

"message": "${ex.getMessage}"

哪里exThrowablegetMessage上面提供了该呼叫的内容示例。

json scala string-formatting

5
推荐指数
1
解决办法
432
查看次数

Terraform 不会删除 CloudWatch 规则

我有链接到 CloudWatch 规则的 Lambda。当我运行terraform destroy删除它们(lambda 及其关联规则)时,它成功删除了 lambda,然后当我尝试删除规则时,我得到

    Error deleting CloudWatch Event Rule: ValidationException: Rule can't be deleted since it has targets.
        status code: 400
Run Code Online (Sandbox Code Playgroud)

我什至在删除 lambda 和规则之间放置了很长时间的睡眠,但我仍然遇到相同的错误。terraform 在删除 lambda 之前是否不会将它们与其目标分离?是否有一个单独的命令可以从 terraform 中执行此操作?

amazon-cloudwatch aws-lambda terraform terraform-provider-aws

5
推荐指数
1
解决办法
4384
查看次数