вопрос о зависании воды при попытке нарезать строки - PullRequest
1 голос
/ 20 апреля 2020

Я предполагаю, что размер данных среднего размера составляет ~ 500 тыс. Строк и 200 столбцов с 8 ГБ памяти.

Моя проблема заключается в том, что, когда мне приходится разрезать данные, даже очень маленькие наборы данных, когда это урезается до 6 тыс. строк и 200 столбцов, что он просто висит и висит на 10/15 мин +. Затем, если я нажму кнопку СТОП для интерактивного python и попробую еще раз, процесс произойдет через 2-3 секунды.

Я не знаю, почему я могу сделать нарезку строк в эти 2-3 секунды в обычном режиме. Это делает невозможным запуск программ, так как все просто зависает и должно быть остановлено вручную, прежде чем оно заработает.

Я следую подходу, изложенному на веб-странице h2o:

import h2o
h2o.init()

# Import the iris with headers dataset
path = "http://h2o-public-test-data.s3.amazonaws.com/smalldata/iris/iris_wheader.csv"
df = h2o.import_file(path=path)

# Slice 1 row by index
c1 = df[15,:]
c1.describe

# Slice a range of rows
c1_1 = df[range(25,50,1),:]
c1_1.describe

# Slice using a boolean mask. The output dataset will include rows with a sepal length
# less than 4.6.
mask = df["sepal_len"] < 4.6
cols = df[mask,:]
cols.describe

# Filter out rows that contain missing values in a column. Note the use of '~' to
# perform a logical not.
mask = df["sepal_len"].isna()
cols = df[~mask,:]
cols.describe

Сообщение об ошибке из консоли выглядит следующим образом. У меня повторяется одно и то же сообщение об ошибке несколько раз .:

/opt/anaconda3/lib/python3.7/site-packages/h2o/expr.py in (.0)
    149             return self._cache._id  # Data already computed under ID, but not cached
    150         assert isinstance(self._children,tuple)
--> 151         exec_str = "({} {})".format(self._op, " ".join([ExprNode._arg_to_expr(ast) for ast in self._children]))
    152         gc_ref_cnt = len(gc.get_referrers(self))
    153         if top or gc_ref_cnt >= ExprNode.MAGIC_REF_COUNT:

~/opt/anaconda3/lib/python3.7/site-packages/h2o/expr.py in _arg_to_expr(arg)
    161             return "[]"  # empty list
    162         if isinstance(arg, ExprNode):
--> 163             return arg._get_ast_str(False)
    164         if isinstance(arg, ASTId):
...