我正在使用pyspark将csv文件加载到postgresql中。我在输入文件中有一条记录,如下所示-
var $dropdown1;
var $dropdown2;
$(document).ready(function(){
$('select').selectpicker();
$dropdown1 = $("select[name='dropdown1']");
$dropdown2 = $("select[name='dropdown2']");
$dropdown1.on("change",function () {
$dropdown2.find("option").remove();
$dropdown2.append($dropdown1.find('option').clone());
var selectedItem = $(this).val();
if (selectedItem) {
$dropdown2.find('option[value="' + selectedItem + '"]').remove();
}
$dropdown2.selectpicker('refresh');
});
});
当我将其加载到postgresql数据库中时,它将像这样被加载,这是不正确的-
Id,dept,city,name,country,state
1234,ABC,dallas,markhenry\,USA,texas
postgresdb中的正确输出应为-
Id | dept| city | name | country | state
1234 | ABC | dallas | markhenry,USA | texas | null
我正在读取如下文件-
Id | dept| city | name | country | state
1234 | ABC | dallas | markhenry | USA | texas
有没有一种方法可以修改代码以处理数据中出现的反斜杠()。预先感谢
答案 0 :(得分:1)
“ quote”选项的目的是指定一个引号字符,该字符包装整个列值。不知道这里是否需要这样做,但是您可以使用regexp_replace
函数删除特定字符(只需按原样选择其他所有内容,然后以这种方式修改name
列)。
from pyspark.sql.functions import *
df = spark.read.option("inferSchema", "true").option("header", "true").csv(filepath)
df2 = df.select(col("Id"), col("dept"), col("city"), regexp_replace(col("name"), "\\\\", "").alias("name"), col("country"), col("state"))
df2.show(4, False)
输出:
+----+----+------+---------+-------+-----+
|Id |dept|city |name |country|state|
+----+----+------+---------+-------+-----+
|1234|ABC |dallas|markhenry|USA |texas|
+----+----+------+---------+-------+-----+