sql - 如何将数据框写入具有带引号的列的数据库中?
问题描述
用模式说 -
'struct<address:string,"name":string>'
一列名称说"name"
是带引号。现在在编写 df 它给出:
name expected at the position .. but '"' is found.
使用以下示例代码:
df
.write
.format(format)
.options(options)
........
解决方案
我的回答如下。我们只是用转义字符重命名列。您应该在写入数据库之前执行此操作,即 df.write 语句。
from pyspark.sql.functions import *
from pyspark.sql.types import *
values = [("112 Street, Pune","Stacky"),
("220 Street, Mumbai","John")]
rdd = sc.parallelize(values)
schema = StructType([StructField("address", StringType(), True),
StructField("name", StringType(), True)])
data = spark.createDataFrame(rdd, schema)
data.show(20,False)
+------------------+------+
|address |name |
+------------------+------+
|112 Street, Pune |Stacky|
|220 Street, Mumbai|John |
+------------------+------+
data = data.withColumnRenamed("name","\"name\"")
data.show()
+------------------+------+
| address|"name"|
+------------------+------+
|112 Street, Pune |Stacky|
|220 Street, Mumbai| John|
+------------------+------+
推荐阅读
- swift - 调用中的参数标签不正确(有'uiImage:',预期'来自:')
- javascript - 如何将输入限制在一个值范围内
- visual-studio-code - 无论如何以编程方式重新启动我的 VSCODE 扩展?
- python - 我的海龟没有检测到输入,它可以越过边界
- makefile - 双向编解码器的 Makefile
- java - ANDROID:MVVM + Retrofit:我应该如何以及在哪里从 JSON 对象数组中检索 JSON 对象列表?
- ios - 如何使用短信实现inapp purchase iOS web app
- javascript - 遍历选择中的所有选项并将值添加到选项名称
- string - 在 SPARQL 中反转字符串
- wpf - WPF - 转换器作为 DependencyObject