不匹配的令牌异常配置单元查询

2024-06-28 20:23:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个由python/spark函数创建的分隔字符串:

singleStringOfDelimitedNames= '|'.join([str(x.asDict().values()[0])  for x in
df3.collect()])

比如说,上面写着“丹•苏西•安•鲍勃” 当我把这个字符串传递到我创建的配置单元UDF中时

^{pr2}$

我得到一个不匹配的令牌异常(26!=301)。函数规范中“Susie”附近的“u”输入不匹配,应为“Ann”。在

让我困惑的是,当我硬编码如下所示的“Dan | Susie Ann | Bob”时,一切都如我所愿。在

df2 = sqlContext.sql("""SELECT field1, field2
                     FROM
                     refinedTable
                     WHERE
                     createdHiveUDF({0}, 'Dan|Susie Ann|Bob', cast(field1 as string), cast(field2 as string))
                     """.format(percentage))

我假设我没有正确地使用.format,或者我必须找到一个不同的python/spark函数来从一列名称中创建一个分隔字符串。如果有人能帮助我理解这个不匹配的令牌异常,以及为什么上面的硬编码避免了这个问题,我将非常感激。在


Tags: 函数字符串format编码stringassparkbob
1条回答
网友
1楼 · 发布于 2024-06-28 20:23:41

你不缺单引号吗?在

df2 = sqlContext.sql("""SELECT field1, field2
                     FROM
                     refinedTable
                     WHERE
                     createdHiveUDF({0}, '{1}', cast(field1 as string), cast(field2 as string))
                     """.format(percentage, singleStringOfDelimitedNames))

相关问题 更多 >