Python中的Apache Beam SQL错误-ValueError:不支持的类型:任何

问题描述

我根据以下代码编写了一个示例 https://github.com/apache/beam/blob/master/sdks/python/apache_beam/examples/sql_taxi.py

我收到一条错误消息

/usr/local/lib/python3.6/dist-packages/apache_beam/typehints/schemas.py中键入_to_runner_api(type_) (177)第177章 178 -> 179提高ValueError(“不支持的类型:%s”%type_) 180 181

ValueError:不支持的类型:任何

代码的相应部分是

   mean_open_close = (
   csv_lines |beam.Map(
       lambda x: beam.Row(
           element_date=x['Date'],element_open=x['Open'],element_close=x['Close']))
   | sqlTransform(
       """
        SELECT
          element_date,AVERAGE(element_open) AS average_open,AVERAGE(element_close) AS average_close
        FROM PCOLLECTION""")

解决方法

在没有实际代码的情况下,目前尚不清楚问题出在哪里(因为所发布的示例运行得很好),但是直觉我可能猜到您正在写

beam.Map(lambda x: beam.Row(attr=expr,...))
对于某些expr来说,

Beam不能为其推断类型。您可以明确地将其写为

beam.Map(lambda x: beam.Row(attr=type(expr),...))

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...