Pyspark 错误:“未定义函数:'from_timestamp'

Posted

技术标签:

【中文标题】Pyspark 错误:“未定义函数:\'from_timestamp\'【英文标题】:Pyspark error: "Undefined function: 'from_timestamp'Pyspark 错误:“未定义函数:'from_timestamp' 【发布时间】:2021-01-07 08:33:04 【问题描述】:

我正在尝试使用 spark.sql 从配置单元视图中获取 pyspark 中的一些数据,但每次它都会抛出以下错误:

pyspark.sql.utils.AnalysisException: u"Undefined function: 'from_timestamp'. This function is neither a registered temporary function nor a permanent function registered in the database 'default'.;

我在 SparkSession.builder 上的设置如下:

spark = SparkSession.builder.appName("home_office") \
    .config("hive.exec.dynamic.partition", "true") \
    .config("hive.exec.dynamic.partition.mode", "nonstrict") \
    .config("hive.exec.compress.output=false", "false") \
    .config("spark.unsafe.sorter.spill.read.ahead.enabled", "false") \
    .config("spark.debug.maxToStringFields", 1000)\
    .enableHiveSupport() \
    .getOrCreate()

【问题讨论】:

【参考方案1】:

Spark SQL 中没有 from_timestamp 这样的函数。如果您指的是 Impala 中的函数,我相信 Spark SQL 中的等价物是date_format

示例用法:

select date_format(current_timestamp(), 'dd/MM/yyyy hh:mm:ss a');

07/01/2021 08:37:11 AM

【讨论】:

我的查询是:select * from office.office where work_date = ''20201218".. Work_date 是使用此“from_timstamp('yyyyMMdd')”创建的视图的分区字段。但这发生在蜂巢中。 @Thkas 那么你需要将视图更改为使用date_format 而不是from_timestamp,这在hive 中也是无效的。 有没有其他方法可以在没有 spark.sql 的情况下进行查询? @Thkas 您可以使用spark.read.table('table_name') 读取配置单元表,其中table_name 是配置单元表名称。我不确定这是否适用于视图。 如果我想在 pyspark 中运行 impala 查询?程序一样吗?​​

以上是关于Pyspark 错误:“未定义函数:'from_timestamp'的主要内容,如果未能解决你的问题,请参考以下文章

python + pyspark:在pyspark中进行多列比较的内部连接错误

PySpark 安装错误

Pyspark 错误:“未定义函数:'from_timestamp'

带有 AM Container 限制错误的 pyspark 错误

Jupyter中的PySpark SparkContext名称错误'sc'

PySpark 数据框显示错误的值