专业网站建设品牌,十四年专业建站经验,服务6000+客户--广州京杭网络
免费热线:400-683-0016      微信咨询  |  联系我们

sql修改字段名_数据库

当前位置:网站建设 > 技术支持
资料来源:网络整理       时间:2023/3/5 13:21:20       共计:3615 浏览

sql修改字段名?

sprk sql修改字段名有以下方法:1.dataframe默认的列名

spark sql去读取文本生成dataframe时,如果该文本没有自带schema信息,默认的列名为_c0, _c1这种形式,我们可以看个例子。

数据如下

101 brand1

101 brand2

101 brand3

102 brand1

102 brand3

102 brand3

102 brand4

103 brand2

103 brand2

103 brand2

103 brand5

103 brand5

1

2

3

4

5

6

7

8

9

10

11

12

1

2

3

4

5

6

7

8

9

10

11

12

如果我们读取上述的csv文本然后生成dataframe, schema信息如下

@Test

def parse2() = {

val sparkConf = new SparkConf().setMaster("local[2]")

sparkConf.set("spark.serializer", "org.apache.spark.serializer.KryoSerializer")

val spark = SparkSession.builder().config(sparkConf).getOrCreate()

val path = "xxx"

val df = spark.read

.option("header", "false")

.option("sep", "\t")

.csv(path)

df.printSchema()

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

最后输出为

root

|-- _c0: string (nullable = true)

|-- _c1: string (nullable = true)

1

2

3

1

2

3

文本默认两列的列名即为_c0, _c1。

2.用withColumnRenamed重命名

实际开发过程中,我们一般会给各列一个名字,这样能方便我们后续开发。其中方法之一就可以使用withColumns方法。

val df = spark.read

.option("header", "false")

.option("sep", "\t")

.csv(path)

.withColumnRenamed("_c0", "appid")

.withColumnRenamed("_c1", "brand")

df.printSchema()

1

2

3

4

5

6

7

8

1

2

3

4

5

6

7

8

withColumns方法每次重命名一列,当列比较多的时候,显然不是特别方便,此时可以使用后面的方法。

3.toDF方法

val df1 = spark.read

.option("header", "false")

.option("sep", "\t")

.csv(path)

.toDF("appid", "brand")

1

2

3

4

5

1

2

3

4

5

toDF后面直接跟列名,就可以达到重命名的目的。

toDF还有另外一种使用方法

val names = Seq("appid", "brand")

val df = spark.read

.option("header", "false")

.option("sep", "\t")

.csv(path)

.toDF(names: _*)

df.printSchema()

其中,_*作为一个整体,告诉编译器你希望将某个参数当作参数序列处理。toDF的方法签名为def toDF(colNames: String*),参数为可变长度的字符串序列,刚好names: _*就可以将seq当成一个参数序列来处理。

版权说明:
本网站凡注明“广州京杭 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。
·上一条:MYSQL怎么实现两个表的字段值相减求这样的SQL语句_数据库 | ·下一条:会C语言怎么挣钱_数据库

Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有    粤ICP备16019765号 

广州京杭网络科技有限公司 版权所有