小编Fis*_*der的帖子

redis.clients.jedis.exceptions.JedisConnectionException:java.net.UnknownHostException

我正在使用Jedis连接到AWS中的Redis实例/集群,但是我一直收到此错误,这是代码,我在SO上进行了广泛搜索,发现最接近的是:属性文件中的字符串主机名:Java

我尝试了两种方式,都没有为我工作。所以请帮忙。

这是我的Java代码:

public static void main(String[] args) {
    AWSCredentials credentials = null;
    try {
        credentials = new ProfileCredentialsProvider("default").getCredentials();
    } catch (Exception e) {
        throw new AmazonClientException("Cannot load the credentials from the credential profiles file. "
            + "Please make sure that your credentials file is at the correct "
            + "location (/Users/USERNAME/.aws/credentials), and is in valid format.", e);
    }

    AmazonElastiCacheClient client = new AmazonElastiCacheClient(credentials);
    client.setRegion(Region.getRegion(Regions.AP_NORTHEAST_2));
    DescribeCacheClustersRequest dccRequest = new DescribeCacheClustersRequest();
    dccRequest.setShowCacheNodeInfo(true);

    DescribeCacheClustersResult clusterResult = client.describeCacheClusters(dccRequest);
List<CacheCluster> cacheClusters = clusterResult.getCacheClusters(); …
Run Code Online (Sandbox Code Playgroud)

java amazon-web-services redis jedis amazon-elasticache

2
推荐指数
1
解决办法
3412
查看次数

ByteArrayInputStream 到 ObjectInputStream 消失了

有不明白的地方,请大家帮忙。

System.out.println("\n" + Arrays.toString(buffer) + "\n");
System.out.println("buffer.length = " + buffer.length + "\nnew ByteArrayInputStream(buffer).available() is: " + new ByteArrayInputStream(buffer).available());
ObjectInput input = new ObjectInputStream(new ByteArrayInputStream(buffer));
System.out.println("input.available(): " + input.available());
Run Code Online (Sandbox Code Playgroud)

它的输出如下:

[-84, -19, 0, 5]

buffer.length = 4
new ByteArrayInputStream(buffer).available() is: 4
input.available(): 0
Run Code Online (Sandbox Code Playgroud)

我很困惑为什么一个包含 4 个有效字节的字节数组在放入 ObjectInputStream 后变为零。

我尝试过的事情:

  1. 最初,我怀疑我的字节数组是空的,但正如你看到的,我打印出来,它的长度是 4。
  2. 然后我认为我的字节可能无效,所以我打印了每个字节,如您所见,这四个字节都是有效的。

所以,我不知道为什么会发生这种情况。

请帮忙,非常感谢!

java io objectinputstream bytearrayinputstream

2
推荐指数
1
解决办法
2788
查看次数

如何在 Spark SQL 中格式化日期?

我需要将这个给定的日期格式转换2019-10-22 00:00:00为:2019-10-22T00:00:00.000Z

我知道这可以通过以下方式在某些数据库中完成:

在 AWS Redshift 中,您可以使用以下方法实现此目的:

TO_DATE('{RUN_DATE_YYYY/MM/DD}', 'YYYY/MM/DD') || 'T00:00:00.000Z' AS VERSION_TIME
Run Code Online (Sandbox Code Playgroud)

但是我的平台是 Spark SQL,所以以上两个都不适合我,我能得到的最好的就是使用这个:

concat(d2.VERSION_TIME, 'T00:00:00.000Z') as VERSION_TIME
Run Code Online (Sandbox Code Playgroud)

这有点hacky,但仍然不完全正确,有了这个,我得到了这个日期格式:2019-10-25 00:00:00T00:00:00.000Z,但是 00:00:00字符串中间的这部分是多余的,我不能把它留在那里。

任何人在这里有任何见解将不胜感激!

sql date-format apache-spark apache-spark-sql pyspark

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

通过堡垒主机将 ssh 端口转发到 VPC 中的 Elasticsearch 集群无法正常工作

我想在我的 Macbook 上运行一些代码,通过堡垒主机访问 VPC 中的一个 Elasticsearch 集群。

这是我的 ssh 隧道命令:

ssh -i ~/Downloads/keypairs/20210402-02.pem ubuntu@ec2-123-456.us-west-2.compute.amazonaws.com -N -L 9200:https://vpc-123-es-domain-20210406-3abc123.us-west-2.es.amazonaws.com:443
Run Code Online (Sandbox Code Playgroud)

但是,这给了我以下错误:

bind [0.0.35.240]:443: Can't assign requested address
channel_setup_fwd_listener_tcpip: cannot listen to port: 443
Could not request local forwarding.
Run Code Online (Sandbox Code Playgroud)

添加-v了以下详细信息:

OpenSSH_8.1p1, LibreSSL 2.7.3
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 47: Applying options for *
debug1: Connecting to ec2-123-456.us-west-2.compute.amazonaws.com port 22.
debug1: Connection established.
debug1: identity file /Users/fisher/Downloads/keypairs/20210402-02.pem type -1
debug1: identity file /Users/fisher/Downloads/keypairs/20210402-02.pem-cert type -1
debug1: Local version string SSH-2.0-OpenSSH_8.1 …
Run Code Online (Sandbox Code Playgroud)

ssh amazon-ec2 amazon-web-services ssh-tunnel elasticsearch

2
推荐指数
1
解决办法
3751
查看次数

如何用Python中的一个值对dict进行排序?

我有一个这样的字典:key是一个字符串,value是一个字符串列表

    my_dict = {
    'key1': [value11, value12, value13],
    'key2': [value21, value22, value23],
    'key3': [value31, value32, value33],
    'key4': [value41, value42, value43]
}
Run Code Online (Sandbox Code Playgroud)

例如

dict_0 = {
'key1' : [lv, 2, abc],
'key2' : [ab, 4, abc],
'key3' : [xj, 1, abc],
'key4' : [om, 3, abc],
}
Run Code Online (Sandbox Code Playgroud)

我想根据值列表中的第二个值进行排序,因此,它应该是这样的:

dict_0 = {
'key3' : [xj, 1, abc],
'key1' : [lv, 2, abc],
'key4' : [om, 3, abc],
'key2' : [ab, 4, abc],
}
Run Code Online (Sandbox Code Playgroud)

我想通过值列表中的值之一来对此dict进行排序,即值*2,我该怎么做?我在网站上进行了大量搜索,但没有找到类似的情况.

谢谢.

python dictionary

0
推荐指数
1
解决办法
99
查看次数

如何在Java中基于{}拆分字符串

我有一个像这样的字符串:

"[{1000, 500, 1}, {1001, 501, 1}, {1002, 501, 2}]" (这不仅仅是数字,也可能是人物.)

我怎样才能将它分成三个部分: {1000, 500, 1} {1001, 501, 1} {1002, 501, 2}

第二步:将每个新子字符串拆分为自己的字段,例如{1000, 500, 1},进入1000,500 1.

我试过的事情:

  1. 我在网上搜索并尝试使用正则表达式和模式和匹配器,但都没有成功.
  2. 我试图基于,它来拆分它们,但显然,它的格式不是很好,中间有空间.看起来需要一些预格式化吗?

有什么想法吗?非常感谢!

java regex format

0
推荐指数
1
解决办法
481
查看次数

火花提交:找不到命令

一个非常简单的问题:

我尝试使用 bash 脚本提交 Spark 作业。但不知怎的,它一直抱怨找不到spark-submit命令。但是当我复制命令并直接在终端中运行时,它运行良好。

我的 shell 是 Fish shell,这是我的 Fish shell 配置中的内容~/.config/fish/config.fish::

alias spark-submit='/Users/MY_NAME/Downloads/spark-2.0.2-bin-hadoop2.7/bin/spark-submit'

这是我的 bash 脚本:

#!/usr/bin/env bash


SUBMIT_COMMAND="HADOOP_USER_NAME=hdfs spark-submit \
      --master $MASTER \
      --deploy-mode client \
      --driver-memory $DRIVER_MEMORY \
      --executor-memory $EXECUTOR_MEMORY \
      --num-executors $NUM_EXECUTORS \
      --executor-cores $EXECUTOR_CORES \
      --conf spark.shuffle.compress=true \
      --conf spark.network.timeout=2000s \
      $DEBUG_PARAM \
      --class com.fisher.coder.OfflineIndexer \
      --verbose \
      $JAR_PATH \
      --local $LOCAL \
      $SOLR_HOME \
      --solrconfig 'resource:solrhome/' \
      $ZK_QUORUM_PARAM \
      --source $SOURCE \
      --limit $LIMIT \
      --sample $SAMPLE \ …
Run Code Online (Sandbox Code Playgroud)

macos bash shell environment-variables fish

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