Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在spark scala中读取带有数组的文件?_Java_Scala_Apache Spark_Hadoop_Bigdata - Fatal编程技术网

Java 如何在spark scala中读取带有数组的文件?

Java 如何在spark scala中读取带有数组的文件?,java,scala,apache-spark,hadoop,bigdata,Java,Scala,Apache Spark,Hadoop,Bigdata,面试官让我用spark scala阅读这个文件,并从这些数据中进行选择,我不知道哪个文件包含这种数据。我尝试使用csv,但它显示错误csv不支持数组类型 所需输出为->1,萨尔曼,p file.csv数据- 1,salman,[p, c, m] 2,srk,[p, c, b] 3,aamir, [p, c, g] val schema1 = StructType(List( StructField("Id", IntegerType), StructFiel

面试官让我用spark scala阅读这个文件,并从这些数据中进行选择,我不知道哪个文件包含这种数据。我尝试使用csv,但它显示错误csv不支持数组类型

所需输出为->1,萨尔曼,p

file.csv数据-

1,salman,[p, c, m]
2,srk,[p, c, b]
3,aamir, [p, c, g]

val schema1 = StructType(List(
    StructField("Id", IntegerType),
    StructField("Name", StringType),
    StructField("Subjects",ArrayType.apply(StringType))

val df1=spark.read
    .schema(schema1)
    .format("csv")
    .load("/home/sayyad/study_material/syllabus_ppt/file1.csv")
这个怎么样

df1.select("Id", "Name", $"Subjects".getItem(0))

尝试使用StructField(“主题”,ArrayType(StringType))而不是StructField(“主题”,ArrayType.apply(StringType))签出读取为文本文件并按
拆分,
提取并筛选所需数据。