我正在使用带有python的jupyter 4,当发生崩溃时,我需要我的脚本执行"重新启动上面的所有单元格".可能吗 ?
第二个问题:如果我需要重新启动所有的单元格,我可以让python根据一些cell-id执行它们吗?然后我可以创建一个单元格id列表,在捕获异常时必须重新执行...
谢谢.
我有一个由 13 台机器组成的集群,有 4 个物理 CPU 和 24 G RAM。
我启动了一个包含 1 个驱动程序和 12 个从程序的 Spark 集群。
我将从属设备的核心数设置为 12 个核心,这意味着我有一个集群,如下所示:
Alive Workers: 12
Cores in use: 144 Total, 110 Used
Memory in use: 263.9 GB Total, 187.0 GB Used
Run Code Online (Sandbox Code Playgroud)
我使用以下配置启动了一个应用程序:
[('spark.driver.cores', '4'),
('spark.executor.memory', '15G'),
('spark.executor.id', 'driver'),
('spark.driver.memory', '5G'),
('spark.python.worker.memory', '1042M'),
('spark.cores.max', '96'),
('spark.rdd.compress', 'True'),
('spark.serializer.objectStreamReset', '100'),
('spark.executor.cores', '8'),
('spark.default.parallelism', '48')]
Run Code Online (Sandbox Code Playgroud)
据我所知,执行器有 15G RAM,有 8 个任务槽,并行度为 48(48 = 6 个任务槽 * 12 个从机)。
然后我在 HDFS 上有两个大文件:每个 6 G(来自 12 个文件的目录,每个文件 5 …
我的csv文件在第一行有标题.将它们加载到猪中会在任何后续功能(如SUM)上造成混乱.截至今天,我首先对加载的数据应用过滤器,以删除包含标题的行:
affaires = load 'affaires.csv' using PigStorage(',') as (NU_AFFA:chararray, date:chararray) ;
affaires = filter affaires by date matches '../../..';
Run Code Online (Sandbox Code Playgroud)
我认为它作为一种方法有点愚蠢,我想知道是否有一种方法可以告诉猪不要加载csv的第一行,就像加载函数的"as_header"布尔参数一样.我没有在doc上看到它.什么是最佳做法?你通常如何处理?
我正在使用 读取 800 Mb CSV 文件pandas.read_csv,然后使用原始 Pythonpickle.dump(datfarame)保存它。结果是 4 Gb pkl 文件,因此 CSV 大小乘以 5。
我希望 pickle 能够压缩数据而不是扩展数据。另外,因为我可以对 CSV 文件执行 gzip,将其压缩到 200 Mb,然后除以 4。
我愿意加快程序的加载时间,并认为酸洗会有所帮助,但考虑到磁盘访问是主要瓶颈,我了解我宁愿必须压缩文件,然后使用压缩选项来加快pandas.read_csv速度加载时间。
那是对的吗?
pickling pandas dataframe 扩展数据大小是否正常?
您通常如何加快加载时间?
使用 pandas 加载的数据大小限制是多少?
我有一个python的pickle对象,它生成一个180 Mb的文件.当我取消它时,内存使用量会爆炸到2或3Gb.你有类似的经历吗?这是正常的吗?
对象是包含字典的树:每个边是一个字母,每个节点都是一个潜在的单词.因此,要存储一个单词,您需要的边数与该单词的长度一样多.所以,第一级是最多26个节点,第二个是26 ^ 2,第三个是26 ^ 3等...对于每个节点都是一个单词我有一个属性指向关于单词的信息(动词,名词,定义等...).
我有最多约40个字符的单词.我有大约五十万条款.一切顺利,直到我腌制(使用简单的cpickle转储):它提供180 Mb文件.我在Mac OS上,当我取消这些180 Mb时,操作系统会给python进程提供2或3 Gb的"内存/虚拟内存":(
我没有在这棵树上看到任何递归:边缘的节点本身就是一个数组数组.不涉及递归.
我有点卡住:这些180 Mb的加载大约是20秒(没有谈到内存问题).我不得不说我的CPU不是那么快:核心i5,1.3Ghz.但我的硬盘是ssd.我只有4Gb的内存.
要在我的树中添加这500 000个单词,我会阅读大约7 000个文件,每个文件包含大约100个单词.这个读取使得mac os分配的内存高达15 Gb,主要是在虚拟内存上:(我一直在使用"with"语句确保关闭每个文件,但实际上并没有帮助.阅读文件带走对于40 Ko,0.2秒.对我来说似乎很长.将它添加到树上要快得多(0.002秒).
最后我想创建一个对象数据库,但我猜python并不适合.也许我会去MongoDB :(
class Trie():
"""
Class to store known entities / word / verbs...
"""
longest_word = -1
nb_entree = 0
def __init__(self):
self.children = {}
self.isWord = False
self.infos =[]
def add(self, orthographe, entree):
"""
Store a string with the given type and definition in the Trie structure.
"""
if len(orthographe) >Trie.longest_word:
Trie.longest_word = len(orthographe)
if len(orthographe)==0:
self.isWord …Run Code Online (Sandbox Code Playgroud) 我在Mac OS上使用终端,但所有终端的窗口都是无边界的,这使得它们很难区分,当它们是一个在另一个上面时.我无法找到在窗口周围添加1px边框的方法(我的终端的窗口都是黑色的背景).
如何在终端窗口中添加彩色(或白色)边框?
我有一个销售产品列表,我想按产品按月对销售额进行分组。我正在使用数据框,其索引是时间索引,并且有一个列产品。
我试过 :
df.groupby(['product', pd.TimeGrouper(freq='1M')])['sales'].sum()
Run Code Online (Sandbox Code Playgroud)
但它给出了一个错误:“TimeGrouper”对象不可调用
我也尝试过
df.groupby(pd.TimeGrouper(freq='1M')).groupby('sales').sum()
Run Code Online (Sandbox Code Playgroud)
但它给出了一个错误:无法访问“dataframegroupby”对象的可调用属性“groupby”。
有任何想法吗 ?
PS:我无法将工作中的粘贴代码复制到互联网上。
我正在命令行上编辑 Dockerfile。我想知道如何让 Docker 的命令被 vim 识别?
我正在使用 jupyter 笔记本来尝试 Spark。
在我的笔记本中,我尝试了 Kmean:
from pyspark.ml.clustering import KMeans
from sklearn import datasets
import pandas as pd
spark = SparkSession\
.builder\
.appName("PythonKMeansExample")\
.getOrCreate()
iris = datasets.load_iris()
pd_df = pd.DataFrame(iris['data'])
spark_df = spark.createDataFrame(pd_df, ["features"])
estimator = KMeans(k=3, seed=1)
Run Code Online (Sandbox Code Playgroud)
一切顺利,然后我拟合模型:
estimator.fit(spark_df)
Run Code Online (Sandbox Code Playgroud)
我收到一个错误:
16/08/16 22:39:58 ERROR Executor: Exception in task 0.2 in stage 0.0 (TID 24)
java.io.IOException: Cannot run program "jupyter": error=2, No such file or directory
Caused by: java.io.IOException: error=2, No such file or directory
Run Code Online (Sandbox Code Playgroud)
Spark 在哪里寻找 Jupyter?为什么我可以使用jupyter Notebook却找不到它?该怎么办 ?..