小编Rav*_*dra的帖子

Java线程池:空闲线程会发生什么

我正在尝试了解 Java 中的多线程。我编写了以下java程序来测试线程池。

public class ThreadPoolTest
{
    public static void main(String[] args)
    {
        ExecutorService executorService = Executors.newFixedThreadPool(5);

        for( int i = 0; i < 3; i++ )
        {
            executorService.submit(new Task(i+1));
        }
        executorService.shutdown();                     

    }

    public static class Task implements Runnable
    {
        private int taskId;

        public Task(int id)
        {
            taskId = id;
        }

        @Override
        public void run() {
            System.out.println("Executing task " + taskId + " performed by " + Thread.currentThread().getName() );
            try
            {
                Thread.sleep(3000);
            }
            catch(InterruptedException interruptEx)
            {
                System.out.println(Thread.currentThread().getName() + " got …
Run Code Online (Sandbox Code Playgroud)

java multithreading threadpool threadpoolexecutor

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

由于空间问题,Spark 作业失败

我正在使用 pyspark 在 Spark 中编写批处理程序。以下是输入文件及其大小

base-track.dat (3.9g)
base-attribute-link.dat (18g)
base-release.dat (543m)
Run Code Online (Sandbox Code Playgroud)

这些是每行一条记录的文本文件,每个字段由一个特殊字符分隔(参考代码)

我正在对属性链接执行一些过滤操作并将它们分组并与其他表连接。

我正在通过 spark-submit 将此程序提交到具有 Ambari 管理的 9 个数据节点的 Hadoop 集群。每个数据节点包含 140 GB 的 RAM 和 3.5 TB 的磁盘空间。

以下是我的pyspark代码

import sys

from pyspark import SparkContext
from pyspark.sql import SQLContext, Row

if __name__ == "__main__":
        sc = SparkContext(appName = "Tracks")
        sqlContext = SQLContext(sc)

        #Load base-track
        track = sc.textFile("base-track/input").map(lambda row: row.split(u'\u0001'))

        #Load base-attribute-link
        attlnk = sc.textFile("base-attribute-link/input").map(lambda row: row.split(u'\u0001'))

        #Load base-release
        release = sc.textFile("base-release/input").map(lambda row: row.split(u'\u0001'))

        attlnk = attlnk.filter(lambda row: row[2] …
Run Code Online (Sandbox Code Playgroud)

hadoop diskspace apache-spark pyspark

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

无法使用 sasl python 模块构建 docker 映像

我正在尝试在我的 mac (High Sierra) 上构建一个包含 Python 2 的 docker 镜像。这是 docker 文件。(build命令:docker build -t integration_test .

FROM python:2

WORKDIR /usr/src/app

COPY requirements.txt ./

RUN pip install -r requirements.txt

COPY . .

CMD [ "nosetests" ]
Run Code Online (Sandbox Code Playgroud)

以下是内容 requirements.txt

nose
pyhive
thrift
sasl
thrift_sasl
python-dateutil
future
six>=1.7.2
Run Code Online (Sandbox Code Playgroud)

当我尝试构建 docker 映像时,出现以下错误。

Failed building wheel for sasl
  Running setup.py clean for sasl
  Running setup.py bdist_wheel for thrift-sasl: started
  Running setup.py bdist_wheel for thrift-sasl: finished with status 'done'
  Stored in directory: /root/.cache/pip/wheels/c8/3a/34/1d82df3d652788fc211c245d51dde857a58e603695ea41d93d
  Running …
Run Code Online (Sandbox Code Playgroud)

python macos pip docker

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

发送电子邮件的工具

我正在开发一种需要对电子邮件进行大量测试的产品.我有一组eml文件(测试样本)要批量发送到产品.

任何人都可以建议一些工具,将这些eml文件作为输入,并将电子邮件发送给给定的收件人.它可以将SMTP地址作为输入.

email eml

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

Spark Python-如何使用reduce by key获得最小值/最大值

我以csv格式有一些城市的最高和最低温度的样本数据。

Mumbai,19,30
Delhi,5,41
Kolkata,20,40
Mumbai,18,35
Delhi,4,42
Delhi,10,44
Kolkata,19,39
Run Code Online (Sandbox Code Playgroud)

我想使用Python中的Spark脚本找出所有城市记录的最低气温。

这是我的剧本

cityTemp = sc.textFile("weather.txt").map(lambda x: x.split(','))

# convert it to pair RDD for performing reduce by Key

cityTemp = cityTemp.map(lambda x: (x[0], tuple(x[1:])))

cityTempMin = cityTemp.reduceByKey(lambda x, y: min(x[0],y[0]))

cityTempMin.collect()
Run Code Online (Sandbox Code Playgroud)

我的预期输出如下

Delhi, 4
Mumbai, 18
Kolkata, 19
Run Code Online (Sandbox Code Playgroud)

但是,脚本将产生以下输出。

[(u'Kolkata', u'19'), (u'Mumbai', u'18'), (u'Delhi', u'1')]
Run Code Online (Sandbox Code Playgroud)

如何获得所需的输出?

python reduce apache-spark pyspark

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

Python二维数组输出

我刚开始学习python.我来自C++/Java背景.要理解二维数组.我写了以下代码片段

x = [[0]*3]*3
for i in range(0,3):
   for j in range(0,3):
      x[i][j] = i+j

for i in range(0,3):
   for j in range(0,3):
      print x[i][j],
   print ""
Run Code Online (Sandbox Code Playgroud)

为什么这个程序打印

2 3 4
2 3 4
2 3 4
Run Code Online (Sandbox Code Playgroud)

而不是我的期望

0 1 2
1 2 3
2 3 4
Run Code Online (Sandbox Code Playgroud)

我想到了这个的原因,我无法做出任何结论.这与参考变量有关吗?

python python-2.7

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