小编ant*_*thr的帖子

在Spark SQL表中分解(转置?)多个列

我正在使用Spark SQL(我提到它是在Spark中,以防影响SQL语法 - 我还不够熟悉)我有一个表,我试图重新构建,但我是卡住试图同时转置多个列.

基本上我的数据看起来像:

userId    someString      varA     varB
   1      "example1"    [0,2,5]   [1,2,9]
   2      "example2"    [1,20,5]  [9,null,6]
Run Code Online (Sandbox Code Playgroud)

我想同时爆炸varA和varB(长度总是一致的) - 所以最终输出如下所示:

userId    someString      varA     varB
   1      "example1"       0         1
   1      "example1"       2         2
   1      "example1"       5         9
   2      "example2"       1         9
   2      "example2"       20       null
   2      "example2"       5         6
Run Code Online (Sandbox Code Playgroud)

但我似乎只能在一个命令中使用单个explode(var)语句,如果我尝试链接它们(即在第一个explode命令之后创建临时表),那么我显然会得到大量重复,不必要的行.

非常感谢!

sql hiveql apache-spark apache-spark-sql

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

如何将一个变量从javascript函数返回到html体

我仍然是javascript的新手,我正在尝试使用html和javascript返回一个变量的函数.基本上该功能应该只返回用户点击的任何单选按钮,尽管目前我根本没有看到任何返回.

功能在这里:

<script type="text/javascript">
function GetSelectedItem() {
var chosen = ""
len = document.f1.r1.length
  for (i = 0; i <len; i++) {
    if (document.f1.r1[i].checked) {
chosen = document.f1.r1[i].value
    }
  }
}
return chosen
</script>
Run Code Online (Sandbox Code Playgroud)

然后在html部分我有这些单选按钮,我尝试将变量"选择"输出到屏幕.

  <form name = f1><Input type = radio Name = r1 Value = "ON" onClick=GetSelectedItem()>On
  <Input type = radio Name = r1 Value = "OFF" onClick =GetSelectedItem()>Off</form>
  <script type ="text/javascript">document.write(chosen)</script>
Run Code Online (Sandbox Code Playgroud)

目前似乎没有从函数返回任何东西(尽管如果我在函数内输出变量'selected',那么它正在正常工作.

提前致谢!

html javascript

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

对 Pandas DataFrame 的矢量化更新?

我有一个数据框,我想用数组中的一些值更新一列。但是,该数组与数据帧的长度不同,但是我有要更新的数据帧行的索引。

我可以通过行(如下)循环来做到这一点,但我希望通过矢量化方法有一种更有效的方法来做到这一点,但我似乎无法获得正确的语法。

在下面的示例中,我只是填充列,nan然后直接通过循环使用索引。

df['newcol'] = np.nan

j = 0
for i in update_idx:
    df['newcol'][i] = new_values[j]
    j+=1
Run Code Online (Sandbox Code Playgroud)

python vectorization pandas

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

计算由熊猫数据框设置的范围内的日期

我有一个包含两个日期列的 Pandas 数据框,一个开始日期和一个定义范围的结束日期。我希望能够收集数据框中所有行的所有日期的总数,如这些列所定义的。

例如,该表如下所示:

index        start_date         end date
     0         '2015-01-01'    '2015-01-17'
     1         '2015-01-03'    '2015-01-12'
Run Code Online (Sandbox Code Playgroud)

结果将是每个日期的聚合,例如:

    date           count
'2015-01-01'     1
'2015-01-02'     1
'2015-01-03'     2
Run Code Online (Sandbox Code Playgroud)

等等。

我目前的方法有效,但在大数据帧上非常慢,因为我在行之间循环,计算范围,然后循环遍历。我希望找到更好的方法。

目前我正在做:

date = pd.date_range (min (df.start_date), max (df.end_date))
df2 = pd.DataFrame (index =date)
df2 ['count'] = 0

for index, row in df.iterrows ():
    dates = pd.date_range (row ['start_date'], row ['end_date'])
    for date in dates:
        df2.loc['date']['count'] += 1
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas

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

在R数据帧中生成随机数,这些数字在相似行中是恒定的

我有一个数据帧,每个'用户'包含X行,其中X在用户之间不是常数.我想要做的是能够生成随机数来填充新列,但对于每个"用户",随机数在与该用户对应的所有行中是相同的.例如,数据可能如下所示:

user    feature1     feature2
 1        "A"           "B"
 1        "L"           "L"
 1        "Q"           "B"
 1        "D"           "M"
 1        "D"           "M"
 1        "P"           "E"
 2        "A"           "B"
 2        "R"           "P"
 2        "A"           "F"
 3        "X"           "U"
...       ...           ...
Run Code Online (Sandbox Code Playgroud)

我想生成一个新列,可能看起来像这样:

user    feature1     feature2   new_rand
 1        "A"           "B"       0.183
 1        "L"           "L"       0.183
 1        "Q"           "B"       0.183
 1        "D"           "M"       0.183
 1        "D"           "M"       0.183
 1        "P"           "E"       0.183
 2        "A"           "B"       0.971
 2        "R"           "P"       0.971
 2        "A"           "F"       0.971
 3        "X" …
Run Code Online (Sandbox Code Playgroud)

r dataframe split-apply-combine

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

如何在时间列上组合基于R数据帧的约束

我有两个R表,每个表都有一个用户列表和一个时间戳,对应于他们采取某个操作的时间.

这些(df1)中的第一个表有一个详尽的用户列表,用户将有多个具有不同时间戳的行.

第二个(df2)将有一个更有限的用户列表,但用户将再次使用不同的时间戳在表中.

我希望能够做的是加入这两个表,最后得到一个与用户匹配的表和df1最接近的时间戳df2,只要时间戳df2发生一个表之后df1.

例如,如果我有两个表,如:

df1 <- data.frame(c(1,1,2,3), as.POSIXct(c('2016-12-01 08:53:20', '2016-12-01 12:45:47', '2016-12-01 15:34:54', '2016-12-01 00:49:50')))
names(df1) <- c('user', 'time')

df2 <- data.frame(c(1,1,3), as.POSIXct(c('2016-12-01 07:11:01', '2016-   12-01 11:50:11', '2016-12-01 01:19:10')))
names(df2) <- c('user', 'time')
Run Code Online (Sandbox Code Playgroud)

给我们:

> df1
  user                time
1    1 2016-12-01 08:53:20
2    1 2016-12-01 12:45:47
3    2 2016-12-01 15:34:54
4    3 2016-12-01 00:49:50

> df2
  user                time
1    1 2016-12-01 07:11:01
2    1 2016-12-01 …
Run Code Online (Sandbox Code Playgroud)

r dataframe posixct

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

无法使用 Ansible 和 Docker 启动 Replicated ZooKeeper

我已经能够在独立模式下使用 Docker 部署 ZooKeeper,运行单个 ZooKeeper 容器,但我现在尝试使用 Ansible 部署三个容器化 ZooKeeper,并且似乎无法让系统以复制模式启动。

我正在使用受良好支持的Docker 版本的 ZooKeeper,并尝试按照文档的建议设置ZOO_MY_IDZOO_SERVERS,尽管在尝试部署容器时它们很快就会失败并出现错误Invalid config,并且似乎还没有设置myid复制所需的变量模式。

错误的形式如下,您还会看到其他一些服务器的地址无法解析(尽管我可以很好地通过 ssh 进入这些机器,并且 Ansible 成功部署到每台机器 - 只是容器被卡住了)陷入崩溃循环)。

从泊坞窗日志:

Using config: /conf/zoo.cfg
2019-08-22 07:07:22,188 [myid:] - INFO  [main:QuorumPeerConfig@133] - Reading configuration from: /conf/zoo.cfg
2019-08-22 07:07:22,192 [myid:] - INFO  [main:QuorumPeerConfig@375] - clientPort is not set
2019-08-22 07:07:22,192 [myid:] - INFO  [main:QuorumPeerConfig@389] - secureClientPort is not set
2019-08-22 07:07:22,198 [myid:] - ERROR [main:QuorumPeerMain@89] - Invalid config, exiting abnormally
org.apache.zookeeper.server.quorum.QuorumPeerConfig$ConfigException: Address …
Run Code Online (Sandbox Code Playgroud)

ansible docker apache-zookeeper

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

vector <float>*导致seg错误!

我有一个浮点数向量,定义如下:

std::vector<float>* MyVec;
Run Code Online (Sandbox Code Playgroud)

然后我在for循环中填充这个:

MyVec->push_back(somevalue)
Run Code Online (Sandbox Code Playgroud)

我得到了一个段错误.为了试图找出发生了什么,我注释了push_back线,我仍然看到了一个seg故障,当它出现故障时,MyVec的大小是490618047.

是否有一些我忘记使用此向量的东西,如何在没有任何条目输入向量的情况下被如此庞大的数字填充?

提前致谢.

c++

-3
推荐指数
4
解决办法
776
查看次数