小编ari*_*wan的帖子

pq:无法调整共享内存段的大小。设备上没有剩余空间

我在仪表板上有一些面板(大约 6 个)来显示数据点图表,对 PostgreSQL 数据库的 dockerised 实例进行查询。

直到最近,面板工作正常,有些停止工作并报告如下错误:

pq:无法将共享内存段“/PostgreSQL.2058389254”调整为 12615680 字节:设备上没有剩余空间

知道这是为什么吗?如何解决这个问题。Docker 容器运行在通过ssh.

编辑

磁盘空间:

$df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1       197G  140G   48G  75% /
devtmpfs        1.4G     0  1.4G   0% /dev
tmpfs           1.4G  4.0K  1.4G   1% /dev/shm
tmpfs           1.4G  138M  1.3G  10% /run
tmpfs           1.4G     0  1.4G   0% /sys/fs/cgroup
/dev/dm-16       10G   49M   10G   1% /var/lib/docker/devicemapper/mnt/a0f3c5ab84aa06d5b2db00c4324dd6bf7141500ff4c83e23e9aba7c7268bcad4
/dev/dm-1        10G  526M  9.5G   6% /var/lib/docker/devicemapper/mnt/8623a774d736ed3dc0d2db89b7d07cae85c3d1bcafc245180eec4ffd738f93a5
shm              64M     0   64M   0% /var/lib/docker/containers/260552ebcdf2bf0961329108d3d975110f8ada0a41325f5e7dd81b8ddad9d18b/mounts/shm
/dev/dm-4        10G  266M  9.8G   3% /var/lib/docker/devicemapper/mnt/6f873e62607e7cac4c4b658c72874c787b90290f74d1159eca81af61cb467cfb …
Run Code Online (Sandbox Code Playgroud)

postgresql docker grafana

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

PostgreSQL- ModuleNotFoundError: 没有名为“psycopg2”的模块

我可以确认 psycopg2 已安装(使用conda install -c anaconda psycopg2),但似乎 psycopg2 无法导入到我的 python 脚本中,或者解释器无法找到它。我也尝试使用 pip3 安装,满足要求,这意味着 psycopg2 已经安装,但无法理解为什么我的脚本无法导入它。使用 Mac (OS v10.14.4)

$ python create_tables.py
Traceback (most recent call last):
  File "create_tables.py", line 1, in <module>
    import psycopg2
ModuleNotFoundError: No module named 'psycopg2'

$ pip3 install psycopg2
Requirement already satisfied: psycopg2 in /usr/local/lib/python3.7/site-packages (2.8.2)
$ pip3 install psycopg2-binary
Requirement already satisfied: psycopg2-binary in /usr/local/lib/python3.7/site-packages (2.8.2)
python -V
Python 3.7.0
Run Code Online (Sandbox Code Playgroud)

知道为什么会这样吗?

编辑: create_table.py

import psycopg2
from config import config


def create_tables():
    """ create …
Run Code Online (Sandbox Code Playgroud)

python psycopg2 python-3.x postgresql-9.1

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

Python:将 PostgreSQL 查询结果检索为格式化 JSON 值

我正在使用包含多个表的 postgres 数据库。目标是从获得的查询结果中检索格式化的 JSON。我创建了这个 python 脚本,从表(测试用例)中获取数据集,以便操作查询结果:

\n\n
import psycopg2\nimport json\nfrom time import sleep\nfrom config import config\n\ndef main():\n    conn = None\n    try:\n        params = config()\n        conn = psycopg2.connect(**params)\n        cur = conn.cursor()\n        cur.execute("select * from location")\n        row = cur.fetchone()\n\n        while row is not None:\n            print(row)\n            #do field rename, merge(log, lat) and obtained JSON here\n            sleep(0.3)\n            row = cur.fetchone()\n\n        cur.close()\n    except (Exception, psycopg2.DatabaseError) as error:\n        print(error)\n    finally:\n        if conn is not None:\n            conn.close()\n\nif __name__ == \'__main__\':\n    main()\n
Run Code Online (Sandbox Code Playgroud)\n\n

为了使我的问题更清楚,我在这里制作了一个简化的场景,用 3 个表格来表示手头的任务,如下所示。

\n\n
environment\n\xe2\x95\x94\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xa6\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xa6\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xa6\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x97\n\xe2\x95\x91 …
Run Code Online (Sandbox Code Playgroud)

python sql postgresql json python-3.x

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

Grafana 中的散点图

我正在使用 dockerized grafana 来创建历史数据的仪表板。我在 grafana 图表面板中看不到散点图选项。

我想使用散点图来显示时间间隔范围内的数据点。我同样希望能够获取/显示选定间隔(例如 30 分钟、60 分钟等)的数据点数量。

dashboard grafana

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

ndarray 的条件过滤

假设我有以下数组数组:

Input = np.array([[[[17.63,  0.  , -0.71, 29.03],
         [17.63, -0.09,  0.71, 56.12],
         [ 0.17,  1.24, -2.04, 18.49],
         [ 1.41, -0.8 ,  0.51, 11.85],
         [ 0.61, -0.29,  0.15, 36.75]]],


       [[[ 0.32, -0.14,  0.39, 24.52],
         [ 0.18,  0.25, -0.38, 18.08],
         [ 0.  ,  0.  ,  0.  ,  0.  ],
         [ 0.  ,  0.  ,  0.  ,  0.  ],
         [ 0.43,  0.  ,  0.3 ,  0.  ]]],


       [[[ 0.75, -0.38,  0.65, 19.51],
         [ 0.37,  0.27,  0.52, 24.27],
         [ 0.  ,  0.  ,  0. …
Run Code Online (Sandbox Code Playgroud)

python arrays numpy python-3.x numpy-ndarray

5
推荐指数
0
解决办法
84
查看次数

来自多个数据帧的pairplot列由类别列中的类标记

我不知道该怎么做,但我相信这是可行的。我有三个dataframes具有相同列定义但来自不同年份的数据集。然后,我想对数字列进行配对,逐个列并绘制来自这些dfs的数据,适当地标记数据来自的集合。目标是了解按年份比较的每一列的数据模式。

我用这两个来说明我的意思,dataframes其中数据集分别df1来自年份2018df2年份2019

df1
          id      speed    accelaration      jerk      mode
0          1      1.94     -1.01             1.05      foot
1          1      0.93      0.04            -0.17      foot
2          3      0.50     -0.16             0.05      bike
3          3      0.57      0.05             0.19      bike
4          5      3.25     -0.13            -0.09      bus
5          5      0.50     -0.25             0.25      bus
6          5      0.25      0.10             0.25      bus

df2
          id    speed   accelaration      jerk      mode
0         17      1.5      0.00           0.00      foot
1         17      1.5      0.00 …
Run Code Online (Sandbox Code Playgroud)

python matplotlib dataframe pandas seaborn

5
推荐指数
0
解决办法
477
查看次数

如何修改此函数以返回 4d 数组而不是 3d 数组?

我创建了这个函数,它接受 adataframe以返回ndarrays输入和标签。

def transform_to_array(dataframe, chunk_size=100):
    
    grouped = dataframe.groupby('id')

    # initialize accumulators
    X, y = np.zeros([0, 1, chunk_size, 4]), np.zeros([0,]) # original inpt shape: [0, 1, chunk_size, 4]

    # loop over each group (df[df.id==1] and df[df.id==2])
    for _, group in grouped:

        inputs = group.loc[:, 'A':'D'].values 
        label = group.loc[:, 'label'].values[0]

        # calculate number of splits
        N = (len(inputs)-1) // chunk_size

        if N > 0:
            inputs = np.array_split(
                 inputs, [chunk_size + (chunk_size*i) for i in range(N)])
        else:
            inputs = …
Run Code Online (Sandbox Code Playgroud)

python numpy dataframe pandas numpy-ndarray

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

高效地将numpy数组数组转换为pandas系列数组

如何有效地将 numpy 数组数组转换为数组列表?最终,我想让 pandas 系列数组成为数据框中的列。如果有更好的办法可以直接到达,那也很好。

以下可重现的代码解决了list()或 的问题.tolist(),但在我的实际数据集上实现都太慢。我正在寻找更快的东西。

import numpy as np 
import pandas as pd

a = np.array([np.array([0,1,2,3]), np.array([4,5,6,7])])

s = pd.Series(a.tolist())

s = pd.Series(list(a))
Run Code Online (Sandbox Code Playgroud)

这导致形状从a.shape = (2,4)s.values.shape = (2,)

python arrays numpy pandas

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

docker SHM_SIZE /dev/shm:调整共享内存的大小

我想postgres从 default调整容器的共享内存大小64M。所以我补充说:

build:
      context: .
      shm_size: '2gb'
Run Code Online (Sandbox Code Playgroud)

我正在使用 3.6 版的撰写文件postgres服务定义。

version: "3.6"

services:

 #other services go here..
 postgres:
    restart: always
    image: postgres:10
    hostname: postgres
    container_name: fiware-postgres
    expose:
      - "5432"
    ports:
      - "5432:5432"
    networks:
      - default
    environment:
      - "POSTGRES_PASSWORD=password"
      - "POSTGRES_USER=postgres"
      - "POSTGRES_DB=postgres"
    volumes:
      - ./postgres-data:/var/lib/postgresql/data
    build:
      context: .
      shm_size: '2gb'
Run Code Online (Sandbox Code Playgroud)

但是,这种变化不会生效,即使我重新启动该服务docker-compose down,然后up。所以我立即开始与 postgres 交互以在仪表板上显示一些数据,我遇到了共享内存问题。

在仪表板吃午饭之前:

$docker exec -it fiware-postgres df -h
Filesystem                                                                                        Size  Used Avail Use% Mounted on
/dev/mapper/docker-253:1-107615-1541c55e4c3d5e03a7716d5418eea4c520b6556a6fd179c6ab769afd0ce64d9f   10G …
Run Code Online (Sandbox Code Playgroud)

postgresql docker docker-compose

4
推荐指数
2
解决办法
9657
查看次数

Grafana:通过 docker-compose 添加 Plotly 插件

使用docker-compose. 我想添加Plotly插件,所以我添加到我的 grafana 容器服务定义中,因此:

grafana:
    restart: always
    image: grafana/grafana
    container_name: fiware-grafana
    depends_on:
     - postgres
    ports:
     - "3000:3000"
    environment:
     - plugins="crate-datasource,grafana-clock-panel,grafana-worldmap-panel,natel-plotly-panel"
    volumes:
     - ./grafana:/var/lib/grafana:rw
Run Code Online (Sandbox Code Playgroud)

但是,当我通过浏览器从 grafana 吃午餐时,我没有发现这个插件可用(见下图)。我在 grafana 服务中添加了 plotly 后删除了 grafana 图像并下载了新的图像,没有变化。

如何通过 docker-compose 将此插件添加到 Grafana? 在此处输入图片说明

编辑:

docker-compose 文件修改:

grafana:
    restart: always
    image: grafana/grafana
    container_name: fiware-grafana
    depends_on:
     - postgres
    ports:
     - "3000:3000"
    environment:
     - GF_INSTALL_PLUGINS="crate-datasource,grafana-clock-panel,grafana-worldmap-panel,natel-plotly-panel"
    volumes:
     - ./grafana:/var/lib/grafana:rw

$ docker-compose ps
        Name                      Command                  State                                Ports                          
-------------------------------------------------------------------------------------------------------------------------------
fiware-cygnus          /cygnus-entrypoint.sh            Up (healthy)   0.0.0.0:5050->5050/tcp, 0.0.0.0:5080->5080/tcp          
fiware-elasticsearch   /docker-entrypoint.sh elas ... …
Run Code Online (Sandbox Code Playgroud)

docker plotly grafana docker-compose

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

添加一列,其中包含另一列中元组值的新值

我有这个df


df = pd.DataFrame(
    {'loss': [0.044, 0.044, 0.038, 0.037, 0.036], 
  'code': ["('ac',)", "('ac', 'be')", "('ab', 'ac', 'be')",
              "('ab', 'ac', 'be', 'fi')", "('ab', 'ac', 'be', 'de', 'fi')"]}
)

df
     loss                            code
0   0.044                          ('ac',)
1   0.044                     ('ac', 'be')
2   0.038               ('ab', 'ac', 'be')
3   0.037         ('ab', 'ac', 'be', 'fi')
4   0.036   ('ab', 'ac', 'be', 'de', 'fi')
Run Code Online (Sandbox Code Playgroud)

现在我想添加一个新列added-code,在该列中引入新值code

预期成绩:


     loss                            code   added-code
0   0.044                          ('ac',)     ac
1   0.044                     ('ac', 'be')     be
2   0.038               ('ab', 'ac', 'be') …
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas

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

没有名为“qiskit”的模块

import numpy as np
from qiskit import QuantumCircuit, ClassicalRegister, QuantumRegister
from qiskit import execute
Run Code Online (Sandbox Code Playgroud)

当尝试上面的代码时,我收到以下错误:

ModuleNotFoundError Traceback(最近一次调用最后一次) in () 1 import numpy as np ----> 2 from qiskit import QuantumCircuit, ClassicalRegister, QuantumRegister 3 from qiskit importexecute

ModuleNotFoundError:没有名为“qiskit”的模块

python qiskit

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