私はこれのpython /スパーク機能によって作成された単一区切られた文字列があります: "。ダン|スージー・アン|ボブ不一致トークン例外ハイブクエリ
singleStringOfDelimitedNames= '|'.join([str(x.asDict().values()[0]) for x in
df3.collect()])
のは、それが言うとしましょうを 私は、私が作成したこのハイブUDFにこの文字列を渡し、
df2 = sqlContext.sql("""SELECT field1, field2
FROM
refinedTable
WHERE
createdHiveUDF({0}, {1}, cast(field1 as string), cast(field2 as string))
""".format(percentage, singleStringOfDelimitedNames))
私は(26!= 301)の不一致トークン例外を取得しています。 U「機能仕様の不一致入力 『アン』期待して)の近くに 『スージー』
何私を混乱することは、私はハードコードときである。 『ダン|スージー・アン|ボブは、』以下に示す、すべては私が意図したとおりに機能さ
。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関数を見つけて、名前の列から区切られた単一の文字列を作成する必要があります。上記のハードコーディングがなぜこの問題を回避するのか、私は感謝します。
私の側では何もテストしませんでしたが、それは私に多くの運を与えませんでした - 私は|それは私にただ一つの性格を与えました。 \\それをエスケープした後にのみ、私は必要なものを手に入れました。私はマニュアルを読むことが助けたかもしれないと思う:) – hummingBird