小编Dan*_*ero的帖子

Jupyter实验室快捷方式

我已经使用Jupyter笔记本几年了.我刚刚前往Jupyter实验室,但我发现缺乏捷径是一种负担.

例如,我注意到我可以在左侧调色板中搜索命令.但我似乎无法轻易将它们绑定到键盘快捷键.这甚至可能吗?

例如,我想用"O"折叠当前单元格输出,并用"Shift O"折叠所有代码单元格.

在此输入图像描述

jupyter jupyter-lab

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

使用Python在Parquet中嵌套数据

我有一个文件,每行有一个JSON.这是一个示例:

{
    "product": {
        "id": "abcdef",
        "price": 19.99,
        "specs": {
            "voltage": "110v",
            "color": "white"
        }
    },
    "user": "Daniel Severo"
}
Run Code Online (Sandbox Code Playgroud)

我想用以下列创建一个镶木地板文件:

product.id, product.price, product.specs.voltage, product.specs.color, user
Run Code Online (Sandbox Code Playgroud)

我知道镶木地板使用Dremel算法进行嵌套编码,但我无法在python中使用它(不知道为什么).

我是一个沉重的熊猫和dask用户,所以我试图构建的管道是json data -> dask -> parquet -> pandas,虽然如果有人有一个简单的例子,使用Python在镶木地板中创建和读取这些嵌套编码我认为这样就足够了:D

编辑

所以,在挖掘PR之后我发现了这个:https://github.com/dask/fastparquet/pull/177

这基本上就是我想要做的.虽然,我仍然无法让它一直运作.我怎么告诉dask/fastparquet我的product列是嵌套的?

python json parquet dask

11
推荐指数
1
解决办法
6558
查看次数

PySpark 在嵌套数组中反转 StringIndexer

我正在使用 PySpark 使用 ALS 进行协作过滤。我的原始用户和项目 ID 是字符串,因此我过去常常StringIndexer将它们转换为数字索引(PySpark 的 ALS 模型要求我们这样做)。

安装模型后,我可以获得每个用户的前 3 个推荐,如下所示:

recs = (
    model
    .recommendForAllUsers(3)
)
Run Code Online (Sandbox Code Playgroud)

数据recs框看起来像这样:

+-----------+--------------------+
|userIdIndex|     recommendations|
+-----------+--------------------+
|       1580|[[10096,3.6725707...|
|       4900|[[10096,3.0137873...|
|       5300|[[10096,2.7274625...|
|       6620|[[10096,2.4493625...|
|       7240|[[10096,2.4928937...|
+-----------+--------------------+
only showing top 5 rows

root
 |-- userIdIndex: integer (nullable = false)
 |-- recommendations: array (nullable = true)
 |    |-- element: struct (containsNull = true)
 |    |    |-- productIdIndex: integer (nullable = true)
 |    |    |-- rating: float (nullable = true) …
Run Code Online (Sandbox Code Playgroud)

python apache-spark apache-spark-sql pyspark apache-spark-ml

6
推荐指数
1
解决办法
3444
查看次数

抽象类和字典的 mypy 问题

伟大的,考虑以下代码。

from abc import ABC, abstractmethod


class Interface(ABC):
    @abstractmethod
    def method(self) -> None:
        pass


class A(Interface):
    def method(self) -> None:
        pass


class B(Interface):
    def method(self) -> None:
        pass


mapping = {'A': A, 'B': B}


# does NOT pass mypy checks
def create_map(param: str) -> Interface:
    if param in mapping:
        return mapping[param]()
    else:
        raise NotImplementedError()

# passes mypy checks
def create_if(param: str) -> Interface:
    if param == 'A':
        return A()
    elif param == 'B':
        return B()
    else:
        raise NotImplementedError()

Run Code Online (Sandbox Code Playgroud)

出于某种原因,create_if …

python abstract-class abc mypy

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