小编ank*_*tel的帖子

从缓存中删除spark数据帧

我使用Spark 1.3.0和python api.在转换庞大的数据帧时,我会缓存许多DF以加快执行速度;

df1.cache()
df2.cache()
Run Code Online (Sandbox Code Playgroud)

一旦某些数据帧的使用结束并且不再需要,我怎样才能从内存中删除DF(或取消缓存它?)?

例如,df1在用于df2少量转换的情况下使用整个代码,之后,它永远不需要.我想强行放下df2以释放更多的内存空间.

apache-spark spark-streaming apache-spark-sql

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

如何在pySpark数据帧中添加Row id

我有一个csv文件; 我在pyspark中转换为DataFrame(df); 经过一番改造; 我想在df中添加一列; 这应该是简单的行id(从0或1开始到N).

我在rdd中转换了df并使用"zipwithindex".我将生成的rdd转换回df.这种方法有效,但它产生了250k的任务,并且需要花费大量的时间来执行.我想知道是否还有其他方法可以减少运行时间.

以下是我的代码片段; 我正在处理的csv文件很大; 包含数十亿行.

debug_csv_rdd = (sc.textFile("debug.csv")
  .filter(lambda x: x.find('header') == -1)
  .map(lambda x : x.replace("NULL","0")).map(lambda p: p.split(','))
  .map(lambda x:Row(c1=int(x[0]),c2=int(x[1]),c3=int(x[2]),c4=int(x[3]))))

debug_csv_df = sqlContext.createDataFrame(debug_csv_rdd)
debug_csv_df.registerTempTable("debug_csv_table")
sqlContext.cacheTable("debug_csv_table")

r0 = sqlContext.sql("SELECT c2 FROM debug_csv_table WHERE c1 = 'str'")
r0.registerTempTable("r0_table")

r0_1 = (r0.flatMap(lambda x:x)
    .zipWithIndex()
    .map(lambda x: Row(c1=x[0],id=int(x[1]))))

r0_df=sqlContext.createDataFrame(r0_2)
r0_df.show(10) 
Run Code Online (Sandbox Code Playgroud)

python apache-spark apache-spark-sql pyspark spark-dataframe

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

如何一次从Docker存储库中提取所有Docker容器映像?

我有一个私人docker存储库,其中存储了10个容器映像。我想将所有图像拖到机器上。有没有办法我可以用一个命令从存储库中提取所有图像?一些命令,如

docker pull  xx.xx.com/reponame/* 
Run Code Online (Sandbox Code Playgroud)

在研究过程中,我发现了提取单个图像的所有标签的方法;但到目前为止在所有图像上都没有运气

containers docker

7
推荐指数
4
解决办法
3663
查看次数

如何启用 kubelet 日志记录详细程度

我想在我的 k8s 设置中设置更高的日志记录详细程度。虽然我设法通过--v=4参数为 API 服务器和 Kubectl 启用了详细信息;我很难找到将这个标志传递给 Kubelet 的方法。

我正在使用kubeadm init方法来启动小型集群,其中 master 也被污染,因此它可以充当 minion。你能帮助启用 kubelet 日志记录吗?

kubernetes kubelet

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

如何解决tcpdump丢弃的数据包?

我正在使用tcpdump捕获网络数据包,并且在开始丢弃数据包时遇到问题。我运行了一个通过网络快速交换数据包的应用程序;导致较高的网络带宽。

>> tcpdump -i eno1 -s 64 -B 919400
126716 packets captured
2821976 packets received by filter
167770 packets dropped by kernel
Run Code Online (Sandbox Code Playgroud)

由于我只对TCP数据包中与协议相关的部分感兴趣,我想收集没有数据/有效载荷的TCP数据包。我希望这种策略也可以帮助在丢弃数据包之前捕获更多数据包。看来我只能将缓冲区大小(-B参数)增加到一定限制。即使具有更高的限制,我丢弃的数据包也比捕获的更多。

你能帮助我理解上面的信息和问题吗

  1. 捕获了什么数据包?
  2. 过滤器收到什么数据包?
  3. 内核丢弃的数据包是什么?
  4. 如何在不丢失任何数据包的情况下以高带宽捕获所有数据包。我的测试应用程序运行了3分钟,并以很高的速率交换数据包。我只对协议相关的信息感兴趣,而对发送的实际数据/有效载荷不感兴趣。

tcpdump

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

kafka 和 JMX 导出器

我无法使用 JMX 导出器公开 kafka 指标。您可以查看我的步骤并在需要的地方纠正我吗?\n我正在按照此处的步骤使用 JMX 导出器启用 kafka。

\n\n

以下是我遵循的分步说明

\n\n
#get kafka\nwget kafka_2.11-2.0.0\n\n# Download Prometheus JMX exporter:\nsudo wget -P /opt/kafka/prometheus/ https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.3.0/jmx_prometheus_javaagent-0.3.0.jar\nsudo wget -P /opt/kafka/prometheus/ https://raw.githubusercontent.com/prometheus/jmx_exporter/master/example_configs/kafka-0-8-2.yml\n\n#Edit Prometheus JMX exporter config file; and append following lines \necho  \xe2\x80\x9c- pattern : kafka.producer<type=producer-metrics, client-id=(.+)><>(.+):\\w* name: kafka_producer_$2\xe2\x80\x9d >> /opt/kafka/prometheus/kafka-0-8-2.yml\necho  \xe2\x80\x9c\xe2\x80\x94 pattern : kafka.consumer<type=consumer-metrics, client-id=(.+)><>(.+):\\w* name: kafka_consumer_$2\xe2\x80\x9d >> /opt/kafka/prometheus/kafka-0-8-2.yml\necho  \xe2\x80\x9c\xe2\x80\x94 pattern : kafka.consumer<type=consumer-fetch-manager-metrics, client-id=(.+)><>(.+):\\w* name: kafka_consumer_$2\xe2\x80\x9d >> /opt/kafka/prometheus/kafka-0-8-2.yml\n\n\n#start zookeeper in terminal 0\n/opt/kafka/bin/zookeeper-server-start.sh config/zookeeper.properties\n\n\n#start kafka broker in terminal 1\nKAFKA_HEAP_OPTS=\xe2\x80\x99\xe2\x80\x9d-Xmx1000M -Xms1000M\xe2\x80\x9d\xe2\x80\x99 \nKAFKA_OPTS=\xe2\x80\x9d-javaagent:/opt/kafka/prometheus/jmx_prometheus_javaagent-0.3.0.jar=7071:/opt/kafka/prometheus/kafka-0\xe2\x80\x938\xe2\x80\x932.yml\xe2\x80\x9d \nJMX_PORT=7071\n/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties  \n\n\n#start …
Run Code Online (Sandbox Code Playgroud)

bash apache-kafka prometheus jmx-exporter

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

Kafka 分区和吞吐量

我有 kafka 的入门经验,我正在尝试探索它的细节。

我试图了解 kafka 分区如何帮助提高吞吐量;在我在网上找到的所有信息中;说明更多的分区意味着更多的并行流;这是有道理的。

然而,从不同的角度来看,它不会。

假设我有两个消费者,它们以每秒“10”条来自给定主题的消息的速度消耗数据。现在无论他们是从单个分区还是两个不同的分区消费;我的吞吐量将保持不变,每秒 20 条消息。

我觉得我一定遗漏了一些关于内部工作的细节,你能帮助我解释 kafka 分区(多个)如何帮助提高固定数量的消费者与单个 kafka 分区的吞吐量。

apache-kafka

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