小编Inf*_*ity的帖子

使用JDBC数据源时如何将用户名和密码传递给Spark-SQL?

我刚开始使用 Spark-SQL 从 H2 数据库加载数据,这是我按照 Spark-SQL 文档所做的:

>>> sqlContext = SQLContext(sc)
>>> df = sqlContext.load(source="jdbc",driver="org.h2.Driver", url="jdbc:h2:~/test", dbtable="RAWVECTOR")
Run Code Online (Sandbox Code Playgroud)

但它不起作用并出现错误,我认为问题在于函数中未指定用户名和密码。

这是来自 Spark-SQL 1.3.1 文档的参数:

  1. url

    要连接到的 JDBC URL。

  2. dbtable 应该读取的 JDBC 表。请注意,FROM可以使用在 SQL 查询子句中有效的任何内容。例如,您还可以使用括号中的子查询来代替完整的表。

  3. driver 连接到此 URL 所需的 JDBC 驱动程序的类名。此类在运行 JDBC 命令之前加载到 master 和 worker 上,以允许驱动程序向 JDBC 子系统注册自己。

  4. partitionColumn, lowerBound, upperBound,numPartitions

    如果指定了其中任何选项,则必须全部指定这些选项。他们描述了从多个工作人员并行读取时如何对表进行分区。partitionColumn 必须是相关表中的数字列。

但是我没有找到任何线索如何将数据库用户名和密码传递给 sqlContext.load 函数。有谁有类似的案例或线索吗?

谢谢。

jdbc h2 apache-spark apache-spark-sql

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

Fastlane:如何根据 --env 从父目录加载 .env 文件

  1. 我知道 Fastlane 自动从.env.env.default和加载变量.env.{environment},其中由命令中的environment标志提供。--envfastlane
  2. 在我的 中,我需要 fastlane 来加载位于父目录中的Fastfile环境文件。
  3. 当根据我在标志中传递的内容进行更改.env.{environment}时,我想保留加载文件的行为。{environment}--env

ios fastlane

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

嵌套字典理解:要解压缩的值太多

我尝试重写以下代码以使用字典理解,只是为了好玩:

import itertools

with open('foo.txt') as f:
    entities = f.read().splitlines()

parsed_entities = []
while entities:
    props = itertools.takewhile(lambda n: n != 'EOM', entities)
    entity = {p.split('=')[0]: p.split('=')[1] for p in props}
    entities = entities[len(entity)+2:]  # Delete and skip EOM & newline
    parsed_entities.append(entity)
Run Code Online (Sandbox Code Playgroud)

我想替换这一行:

entity = {p.split('=')[0]: p.split('=')[1] for p in props}
Run Code Online (Sandbox Code Playgroud)

具有更好看的字典理解,可能看起来像:

entity = {key: value for p in props for key, value in p.split('=')}
Run Code Online (Sandbox Code Playgroud)

当我尝试这样做时,我收到以下错误:

ValueError:解压缩的值太多(预期2)

我究竟做错了什么?使用ipdb.pm()我看到p是name=yam,这是很好的,但keyvalue没有定义.

python dictionary python-3.x dictionary-comprehension

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

为什么Python解释器不返回显式的SyntaxError消息?

当查看CPython时tokenizer.c,令牌生成器返回特定的错误消息。

例如,您可以看一下分词器尝试解析十进制数的部分。尝试解析该数字时,5_6一切都应该正常,但是当尝试解析该数字时5__6,令牌生成器应返回SyntaxError并显示消息“无效的十进制文字”:

static int
tok_decimal_tail(struct tok_state *tok)
{
    int c;

    while (1) {
        do {
            c = tok_nextc(tok);
        } while (isdigit(c));
        if (c != '_') {
            break;
        }
        c = tok_nextc(tok);
        if (!isdigit(c)) {
            tok_backup(tok, c);
            syntaxerror(tok, "invalid decimal literal");
            return 0;
        }
    }
    return c;
}
Run Code Online (Sandbox Code Playgroud)

使用Python,我尝试达到令牌生成器的SyntaxError消息:

In [12]: try: 
    ...:     eval('5__6') 
    ...: except SyntaxError as e: 
    ...:     print(e.args, e.filename, e.lineno, e.msg, e.text) 

('invalid token', ('<string>', 1, 2, '5__6')) …
Run Code Online (Sandbox Code Playgroud)

python cpython python-internals

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

Python argparse:“试运行”标志,使用禁用其他标志

我有以下辅助函数用于使用以下方法解析参数argparse

def get_cli_arguments():
    parser = argparse.ArgumentParser(prog='Xtrayce')
    parser.add_argument(
        "-o", "--output",
        default=get_default_output_path(),
        help="Supply an output path.",
        type=argparse.FileType('wb'),
    )
    parser.add_argument(
        "-d", "--dry",
        help="Don't save a file with the output.",
        action="store_true",
    )
    parser.add_argument(
        "-s", "--standard",
        help="Also scan standard library and modules.",
        action="store_true",
    )
Run Code Online (Sandbox Code Playgroud)

我希望每当用户指定该--dry标志时,就不会从该参数创建任何文件--output

当用户指定--dry,同时仍然使用default=和时,“取消”文件创建的最佳方法是什么type=argparse.FileType("wb")

python argparse python-3.x

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

挂钩Python中的每个函数调用

我有一个大型代码库,其中包含数千个功能。

我想在每个函数调用之前和之后,函数启动时和结束时启用代码执行。

有没有一种方法无需重新编译Python或向每个函数添加代码?有没有办法钩住代码中的每个函数调用?

python hook metaprogramming python-3.x

0
推荐指数
1
解决办法
68
查看次数