stripMargin

(1) Scala中创建多行字符串使用Scala的Multiline String。
在Scala中,利用三个双引号包围多行字符串就可以实现。
代码实例如:

val foo = """a
bc
d"""

运行结果为:

a
   bc
   d

(2) 上述方法存在一个缺陷问题,输入的内容,带有空格、\t之类,导致每一行的开始位置不能整洁对齐。

而在实际应用场景下,有时候我们就是确实需要在scala创建多少字符串,但是每一行需要固定对齐。

解决该问题的方法就是应用scala的stripMargin方法,在scala中stripMargin默认是“|”作为出来连接符,在多行换行的行头前面加一个“|”符号即可。

代码实例:

val speech = """abc

|def""".stripMargin

运行的结果为:

abc

def

(3) spark sql 中的应用:

val resultDf_word = spark_sc.spark.sqlContext.sql(  """    
|  SELECT  lang,    
|  COUNT(1) AS pv,    
|  COUNT(DISTINCT did) AS uv,    
|    
|  COUNT(XXX) AS return_pv,    
|  COUNT(XXX) AS return_uv,    
|    
|  FROM resultDf    
|  where XXX >= 0 and len(XXX) > 0    
|    
|  GROUP BY XXX,XXX, lang  """.stripMargin)

猜你喜欢

转载自www.cnblogs.com/QFKing/p/11869349.html
今日推荐