例如,如果我有一个字符串列值(例如“ 2.450”),我想从该列中获取正确的2个字符“ 50”,如何使用Spark 2.0.1中的sql来获取它我在从dataframe创建的视图上运行sql
mydf.createOrReplaceTempView("myview");
Run Code Online (Sandbox Code Playgroud)
我看到有人说应该参考HQL文档,然后我尝试使用带有负参数的子字符串,它起作用。这很简单,但是使事情变得复杂的原因是spark sql没有文档。我认为这不是一个好主意,对于许多想使用spark sql的人来说,它不是一个好主意。
scala> val df = spark.sql("select a, substring(a,-2) as v from cdr");
df: org.apache.spark.sql.DataFrame = [a: string, v: string]
scala> df.show()
+-----------+---+
|a | v|
+-----------+---+
| 4.531| 31|
| 4.531| 31|
| 1.531| 31|
| 1.531| 31|
| 1.531| 31|
| 1.531| 31|
| 1.531| 31|
| 3.531| 31|
| 1.531| 31|
| 1.531| 31|
| 1.531| 31|
| 1.431| 31|
| 1.531| 31|
| 1.633| 33|
| 1.531| 31|
| 3.531| 31|
| 1.531| 31|
| 3.531| 31|
| 1.531| 31|
| 4.531| 31|
+-----------+---+
only showing top 20 rows
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7948 次 |
| 最近记录: |