Spark Java:矢量汇编程序列名中的转义点

Spark Java:矢量汇编程序列名中的转义点,java,apache-spark,vector,escaping,dot,Java,Apache Spark,Vector,Escaping,Dot,我有一个数据集,其中一些列名有点。当涉及到向量汇编程序时,问题就出现了。他们似乎相处不好,所以我试着用很多方法来逃避这些点,但没有任何改变 String[] expincols = newfilenameavgpeaks.columns(); VectorAssembler assemblerexp = new VectorAssembler() .setInputCols(expincols) .setOutpu

我有一个数据集,其中一些列名有点。当涉及到向量汇编程序时,问题就出现了。他们似乎相处不好,所以我试着用很多方法来逃避这些点,但没有任何改变

String[] expincols = newfilenameavgpeaks.columns();

VectorAssembler assemblerexp = new VectorAssembler()
                    .setInputCols(expincols)
                    .setOutputCol("intensity");

Dataset<Row> filenameoutput = assemblerexp.transform(newfilenameavgpeaks);
String[]expincols=newfilenameavgpeaks.columns();
VectorAssembler assemblerexp=新的VectorAssembler()
.setInputCols(expincols)
.setOutputCol(“强度”);
Dataset filenameoutput=assemblerexp.transform(newfilenameavgpeaks);

我在expincols中用“`”、“`”、“``”、“``”、“`”、“`”、“`”、“`”、“`”等包装了每个元素,但什么都没有!我也在newfilenameavgpeaks的列名中尝试了这些,但仍然没有。有什么方法可以转义吗?

如果数据集包含列
a.b
,您仍然可以使用
df.col(`a.b`)
选择名称中带有
的列。这是因为尝试更改列名并可以处理反勾号

但是,采用提供的数据集的架构并使用它来处理中的列名。如果列名不完全匹配,则不包含处理反勾号的逻辑并抛出
IllegalArgumentException

因此,唯一的选择是在将列提供给VectorAssembler之前重命名这些列:

Dataset newfilenameavgpeaks=。。。
for(字符串列:newfilenameavgpeaks.columns()){
newfilenameavgpeaks=newfilenameavgpeaks
.with column重命名(col,col.replace('.','.'));
}
VectorAssembler assemblerexp=新的VectorAssembler()
.setInputCols(newfilenameavgpeaks.columns()).setOutputCol(“强度”);
Dataset filenameoutput=assemblerexp.transform(newfilenameavgpeaks);

如果数据集包含列
a.b
,您仍然可以使用
df.col(`a.b`)
选择名称中带有
的列。这是因为尝试更改列名并可以处理反勾号

但是,采用提供的数据集的架构并使用它来处理中的列名。如果列名不完全匹配,则不包含处理反勾号的逻辑并抛出
IllegalArgumentException

因此,唯一的选择是在将列提供给VectorAssembler之前重命名这些列:

Dataset newfilenameavgpeaks=。。。
for(字符串列:newfilenameavgpeaks.columns()){
newfilenameavgpeaks=newfilenameavgpeaks
.with column重命名(col,col.replace('.','.'));
}
VectorAssembler assemblerexp=新的VectorAssembler()
.setInputCols(newfilenameavgpeaks.columns()).setOutputCol(“强度”);
Dataset filenameoutput=assemblerexp.transform(newfilenameavgpeaks);