在表中有一个名为Adventurous的持续时间列,该列的值如下。在``H''的后缀是小时,在``M''的后缀是分钟,在``S''的后缀是秒。选择小时,分钟和秒,然后将其全部转换为秒,即以秒为形式的所有小时,分和秒的总和。
Duration
--------
PT10M13S
PT13M22S
PT1H2M18S
PT11S
Run Code Online (Sandbox Code Playgroud)
我尝试使用如下所示的子字符串和charindex并尝试创建一个函数,但出现错误:
Declare @Duration varchar(30) ='PT16H13M42S', @Dur varchar(10)
Declare @hours int
declare @mins int
declare @secs int
declare @len int
select @len = len(substring (@Duration, 3, len(@Duration))), @Dur=substring (@Duration, 3, len(@Duration))
select @hours = charindex('H', @Dur)
select substring(@Dur, 1, @hours-1)
select @Duration=substring (@Dur, @hours+1, len(@Dur))
select @mins = charindex('M', @Duration)
select substring(@Duration, 1, @mins-1)
select @Dur=substring (@Duration, @mins+1, len(@Duration))
select @secs= charindex('S', @Dur)
select substring(@Dur, 1, @Secs-1)
select @len, @Dur, @Duration
Run Code Online (Sandbox Code Playgroud)
示例PT1H2M18S = 1 …
我正在尝试使用 Databricks 中的 Pyspark 实现异常处理,其中我需要检查文件是否存在于源位置中。
df = spark.read.csv.option("inferschema", "true").load("mnt/pnt/abc.csv")
try:
df = open("abc.csv", "rt")
print("File opened")
except FileNotFoundError:
print("File does not exist")
except:
print("Other error")**
Run Code Online (Sandbox Code Playgroud)
我希望有类似上面的代码片段的东西,但是我无法采取这种方法。我想请求一些帮助,我将非常感激
apache-spark apache-spark-sql pyspark databricks azure-databricks