sql将列以,分割;将表数据转化为xml或json格式

这里先了解for xml pathfor json path这两个语法:

for xml path与for json path

通俗一点的讲,将数据转化为XML格式与JSON格式;可能你不理解,咱就上图。

我先创建了临时表 #table

select * into #table
from (

      select 1 as autoID, '32167542' as id, '张三' as name, '唱' as hobby
      union
      select 4 as autoID, '48978925' as id, '李四' as name, '跳' as hobby
      union
      select 7 as autoID, '32167542' as id, '张三' as name, 'rap' as hobby
      union
      select 11 as autoID, '48978925' as id, '李四' as name, '篮球' as hobby
	  union
      select 13 as autoID, '48978925' as id, '李四' as name, '时长两年半' as hobby
)x

select * from #table for xml path

 

我们看到,转换成xml格式后,头标签为row,我们更改头标签的话就for xml path('标签名称'),不要头标签就for xml path(''),下面是结果

转json就用for json path,执行效果。

很强大有木有?有的扣1,没有的扣眼珠子。 

好了,那要怎么才能把列数据用,分割呢?下面为大家实现。

select id,name,(select ','+hobby from #table for xml path('')) as hobby from #table

下面图片可以看到,hobby列已经用,分割好了

 但是,张三和李四的爱好重复在一起了。哎,不是所有人都喜欢,唱,跳,rap,打篮球啊,所以,我们要让张三李四找到自己的爱好。就要进行下面操作。

select id,name,stuff((select ','+hobby from #table as a where a.id=b.id for xml path('')),1,1,'') as hobby 
from #table as b
group by id,name

 分好了,到此结束。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
在Spark编程中,我们可以使用Spark SQL来将数据转换为JSON格式并写入Hive。 首先,我们需要创建一个DataFrame,可以从Hive中读取数据或者通过其他方式创建。然后,我们可以使用`toJSON`函数将DataFrame中的数据转换为JSON格式。这将返回一个新的DataFrame,其中包含一个JSON(通常命名为“value”)。 接下来,我们可以将这个DataFrame写入Hive中。首先,我们需要将DataFrame注册为一个临时视图,以便能够执行SQL查询。可以通过`createOrReplaceTempView`函数来实现。然后,我们可以使用INSERT INTO语句将临时视图中的数据插入到Hive中。 下面是一个示例代码: ```scala import org.apache.spark.sql.SparkSession val spark = SparkSession.builder() .appName("Spark JSON to Hive") .enableHiveSupport() .getOrCreate() // 读取数据并创建DataFrame val data = spark.read.table("input_table") // 将数据转换为JSON格式 val jsonString = data.toJSON // 将JSON数据写入Hive jsonString.createOrReplaceTempView("tempView") spark.sql("INSERT INTO TABLE output_table SELECT * FROM tempView") ``` 在以上代码中,我们假设已经在Hive中创建了`input_table`和`output_table`两个。首先,我们使用`spark.read.table`函数读取`input_table`中的数据,并创建一个DataFrame。然后,我们使用`toJSON`函数将DataFrame中的数据转换为JSON格式,并将结果保存到一个新的DataFrame中。最后,我们通过将新的DataFrame注册为临时视图,然后使用INSERT INTO语句将临时视图中的数据插入到Hive的`output_table`中。 总的来说,利用Spark的编程能力,我们可以轻松地将数据转换为JSON格式,并将其写入Hive中。这为我们在Hive中进行灵活的数据处理和分析提供了方便和高效的方式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值