小编Tej*_*iya的帖子

如何选择shell输出的最后一行

你好,我有一个像这样的 shell 命令。

s3=$(awk 'BEGIN{ print "S3 bucket path" }
 /Executing command\(queryId/{ sub(/.*queryId=[^[:space:]]+: /,""); q=$0 }
 /s3:\/\//{ print "," $10 }' OFS=',' hive-server2.log)
Run Code Online (Sandbox Code Playgroud)

上面命令的输出是这样的。

echo $s3

2018-02-21T17:58:22,
2018-02-21T17:58:26,
2018-02-21T18:05:33,
2018-02-21T18:05:34
Run Code Online (Sandbox Code Playgroud)

我只想选择最后一行。我需要这样的最后一个输出。

 2018-02-21T18:05:34
Run Code Online (Sandbox Code Playgroud)

我这样尝试过。

awk -v $s3 '{print $(NF)}' 
Run Code Online (Sandbox Code Playgroud)

不起作用。任何帮助将不胜感激。

bash shell awk sed

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

两个表的行级比较

嗨,我有两张这样的桌子.

源表

orig1 orig2 orig3 xref1 xref2 xref3
1      1     1     2     2     2
1      1     1     3     3     3
23    23    23     12   12    12
Run Code Online (Sandbox Code Playgroud)

目标表:

orig1 orig2 orig3 xref1 xref2 xref3  version
1      1     1     1     1      1       0
Run Code Online (Sandbox Code Playgroud)

我需要输出如下

1)我需要匹配(source(orig1 orig2 orig3) == target(orig1 orig2 orig3)),如果它的macthing我们需要通过将版本增加1来将其从源添加到目标表,如果它不匹配,只需将版本附加为'0'

预期产量是:

orig1 orig2 orig3 xref1 xref2 xref3  version
1      1     1     1     1      1       0
1      1     1     2     2      2       1
1      1     1     3     3      3       2 …
Run Code Online (Sandbox Code Playgroud)

python dataframe python-3.x apache-spark pyspark

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

无法在sparksql中选择前10个记录

嗨,我是新来的火花sql.我有这样的数据框.

  ---+----------+----+----+----+------------------------+
 |tag id|timestamp|listner| orgid |org2id|RSSI
 +---+----------+----+----+----+------------------------+
 |  4|1496745912| 362|   4|   3|                    0.60|
 |  4|1496745924|1901|   4|   3|                    0.60|
 |  4|1496746030|1901|   4|   3|                    0.60|
 |  4|1496746110| 718|   4|   3|                    0.30|
 |  2|1496746128| 718|   4|   3|                    0.60|
 |  2|1496746188|1901|   4|   3|                    0.10|
Run Code Online (Sandbox Code Playgroud)

我想为spark sql中的每个listner前10个时间戳值选择.

我尝试了以下查询.它会抛出错误.

  val avg = sqlContext.sql("select top 10 * from avg_table") // throws error.

  val avg = sqlContext.sql("select rssi,timestamp,tagid from avg_table order by desc limit 10")  // it prints only 10 records.
Run Code Online (Sandbox Code Playgroud)

我想为每个列表器选择我需要获取前10个时间戳值.任何帮助将不胜感激.

sql apache-spark-sql

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