当前pyspark格式化logFile,然后加载redshift。
分析有关以json格式输出的logFile的每个项目,添加一个项目,然后将其加载到Redshift中。但是,某些项目的格式因每种类型而异。?对于同一项目,事先应用Shcema。即使按原样输出,也会输入转义字符?有没有办法动态创建架构信息,并且输出jsonfile没有转义符?
- 环境 -
- spark 2.4.0
- python version 2.7.15
Run Code Online (Sandbox Code Playgroud)
-DataFrame-
>> df.printSchema()
root
|-- Name: string (nullable = false)
|-- d: map (nullable = false)
| |-- key: string
| |-- value: string (valueContainsNull = true)
>> df.show(2,False)
+------+------------------------------------------------------------+
|Name |d |
+------+------------------------------------------------------------+
|Amber |[Body -> {"City": "Oregon", "Country": "US"}, BodyType -> 1]|
|Alfred|[Body -> {"Weight": 80, "Height": 176}, BodyType -> 2] |
+------+------------------------------------------------------------+
Run Code Online (Sandbox Code Playgroud)
-模式?对于普通项目?-
>> print(json.dumps(schema.jsonValue(), indent=2))
{
"fields": [
{
"metadata": {},
"type": "string",
"name": …Run Code Online (Sandbox Code Playgroud)