小编Phi*_*ahn的帖子

在 Databricks / Spark 中的 SQL 中为变量分配动态值

我觉得我一定在这里遗漏了一些明显的东西,但我似乎无法在 Spark SQL 中动态设置变量值。

假设我有两个表tableSrc和,tableBuilder并且我正在创建tableDest

我一直在尝试变体

SET myVar FLOAT = NULL

SELECT
    myVar = avg(myCol)
FROM tableSrc;

CREATE TABLE tableDest(
    refKey INT,
    derivedValue FLOAT
);


INSERT INTO tableDest
    SELECT
        refKey,
        neededValue * myVar AS `derivedValue`
    FROM tableBuilder
Run Code Online (Sandbox Code Playgroud)

在 T-SQL 中执行此操作是微不足道的,这对 Microsoft 来说是一个令人惊讶的胜利(DECLARE... SELECT)。然而,Spark 抛出

Error in SQL statement: ParseException: mismatched input 'SELECT' expecting <EOF>(line 53, pos 0)

但我似乎无法将派生值分配给变量以供重用。我尝试了几种变体,但最接近的是将变量分配给 select 语句的字符串。

数据块截图

请注意,这是根据 T-SQL 中的功能齐全的脚本改编的,因此我不会尽快拆分出十几个 SQL 变量来使用 Python Spark 查询来计算所有这些变量,只是为了在中插入{var1}{var2} …

apache-spark apache-spark-sql databricks

10
推荐指数
2
解决办法
6万
查看次数

在括号对之后将Emacs设置为智能自动行吗?

我已经electric-pair-mode启用了(这并不是特别相关,因为它可以应用于任何自动配对模式甚至手动Parens),但总而言之,我希望这样做,以便在使用时:

function foo() {|}

|标记在哪里)

如果按回车键,我希望它自动转到

function foo() {
|
}
Run Code Online (Sandbox Code Playgroud)

这也意味着

function foo(|) {}

会成为

function foo(
|
){}
Run Code Online (Sandbox Code Playgroud)

我已经准备好处理缩进了,但是我不确定如何说“如果我在任何一对空的匹配括号内,当我按回车键时,实际上要插入两行并放在第一行”。

谢谢!

emacs elisp

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

np.tile 的 Numba 兼容实现?

我正在根据本文编写一些用于图像去雾的代码,并从废弃的Py2.7 实现开始。从那时起,特别是使用 Numba,我取得了一些真正的性能改进(很重要,因为我必须在 8K 图像上运行它)。

我非常确信我最后一个重要的性能瓶颈是执行框过滤步骤(我已经为每个图像节省了几乎一分钟的时间,但这最后一个缓慢的步骤约为 30 秒/图像),而且我已经接近实现它像在 Numba 中一样运行nopython

@njit # Row dependencies means can't be parallel
def yCumSum(a):
    """
    Numba based computation of y-direction
    cumulative sum. Can't be parallel!
    """
    out = np.empty_like(a)
    out[0, :] = a[0, :]
    for i in prange(1, a.shape[0]):
        out[i, :] = a[i, :] + out[i - 1, :]
    return out

@njit(parallel= True)
def xCumSum(a):
    """
    Numba-based parallel computation
    of X-direction cumulative sum
    """
    out = np.empty_like(a) …
Run Code Online (Sandbox Code Playgroud)

python numpy numba

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

在 emacs 中自动转义拉出的字符串

显然,这个周末我非常渴望向我的 Emacs 环境添加大量功能。我可以自己做一些基础知识,并寻找其他东西,但我一直无法找到解决方案(并且我对 Lisp 的了解不够好,无法自己完成)。

我经常使用 HTML 字符串,有时,如果我将它们从一个块移动到另一种块(或从一种语言移动到另一种语言),则字符串在未转义的地方会被破坏。所以,我想要一个执行类似操作的函数:

(defun smart-yank-in-string()
      (if (stringp) ; Check if the point is in a string
        ; Check if the region created from the point to the end of the yank ends the string 
        ; (and there is more yank left that isn't ";")
        ; Escape quotes for those locations recursively by prepending \
        ; Insert result into buffer @ mark
          ))
Run Code Online (Sandbox Code Playgroud)

有什么巧妙的想法吗?我认为它涉及使用kill-new存储变量并遍历它,但我对 elisp 不够熟悉来解决它。

emacs elisp

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