data.frame - это список, а столбцы - его элементы. Если вы извлекаете столбец и хотите сохранить его имя, вы не можете использовать $
, если вам нужно получить имя столбца вместе со значениями столбца, используйте [
df
# col_a col_b
# 1 1 5
# 2 2 2
# 3 3 8
Если извлечение путем присвоения имени столбца ($
), будут получены только значения, если извлечение по положению столбца ([
), оно дает имя столбца + значения в этом столбце. Этот [
может содержать позиции элемента по числу или имени, но сохраняет имя
$
df$col_a
# [1] 1 2 3
[
df[1]
# col_a
# 1 1
# 2 2
# 3 3
Поведение списка (как было сказано выше, data.frame - это список)
my_list <- list(a = 1:10, b = 1:3, c= 4)
Чтобы извлечь значения в элементе a
Element Name - Gives Только значения
my_list$a
# [1] 1 2 3 4 5 6 7 8 9 10
Чтобы извлечь значения элемента в положение 1
Позиция элемента - Дает имя элемента + значения в элементе
my_list[1]
# $a
# [1] 1 2 3 4 5 6 7 8 9 10
Дополнительная помощь в консоли R типа
?`[`
Возможно, вам не хватает настройки в заявке на объем:
kind: PersistentVolume
apiVersion: v1
metadata:
name: amq-pv-claim-local
labels:
type: local
spec:
storageClassName: manual
persistentVolumeReclaimPolicy: Retain
capacity:
storage: 3Gi
accessModes:
- ReadWriteOnce
hostPath:
path: /tmp
Также есть хорошее изменение, которое не работает из-за использования hostPath: HostPath означает, что оно хранится на сервере. громкость началась. Он не мигрирует вместе с перезапуском стручка и может привести к очень странному поведению в pv. Обратите внимание на использование NFS, gluster или любой другой кластерной файловой системы для хранения ваших данных по общедоступному пути.
Если вы используете облачного провайдера, вы также можете иметь автоматическое монтирование диска из kubernetes, так что вы можете использовать gcloud, AWS, Azure и т. Д., Чтобы предоставить вам хранилище и быть подключенным kubernetes там, где этого хочет kubernetes. ]
Благодаря этому плану развертывания я могу использовать activemq в кластере Kubernetes, работающем в AWS. Тем не менее, я все еще пытаюсь выяснить, почему это не работает для MySQL таким же образом.
Просто запустить
kubectl create -f activemq.yaml
делает свое дело. Очереди являются постоянными и даже завершают работу модуля, а перезапуск вызывает очереди. Они остаются до тех пор, пока не будут удалены постоянный том и утверждение. С этим шаблоном мне даже не нужно явно создавать том.
apiVersion: apps/v1
kind: Deployment
metadata:
name: activemq-deployment
labels:
app: activemq
spec:
replicas: 1
selector:
matchLabels:
app: activemq
template:
metadata:
labels:
app: activemq
spec:
securityContext:
fsGroup: 2000
containers:
- name: activemq
image: activemq:1.0
ports:
- containerPort: 8161
volumeMounts:
- name: activemq-data
mountPath: /opt/apache-activemq-5.15.6/data
readOnly: false
volumes:
- name: activemq-data
persistentVolumeClaim:
claimName: amq-pv-claim
---
apiVersion: v1
kind: Service
metadata:
name: amq-nodeport-service
spec:
selector:
app: activemq
ports:
- port: 8161
targetPort: 8161
type: NodePort
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: amq-pv-claim
spec:
#storageClassName: manual
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 2Gi