С традиционным для цикла
ArrayList<String> myArray = new ArrayList<>();
for (int i = 0; i < myArray.size(); ) {
String text = myArray.get(i);
if (someCondition(text))
myArray.remove(i);
else
i++;
}
Боюсь, что у сканера нет возможности взять информацию заголовка из другого файла.
Однако вы можете написать склеивающее задание для переименования столбцов.
df = dyf.toDF ()
blockquote>
oldColumns = df.schema.names
newColumns = #cols из заголовочного файла
df = Reduce (lambda df, idx: df.withColumnRenamed (oldColumns [idx], newColumns [idx]), xrange (len (oldColumns)), df)