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 错误:“未定义函数:'from_timestamp'
带有 AM Container 限制错误的 pyspark 错误