我有一个如下所示的spark数据帧。第一列包含Party文本文件的内容(使用sc.wholeTextfile读取)。第二行包含标识符文本文件的内容。现在,我必须遍历下面数据帧的每一行,并写入不同的hive表。第一行应该写入Party表,第二行应该写入Identifier表,依此类推。
当我使用dataframe.foreaach遍历这个数据帧时,我不能使用spark session,因为spark session是不可序列化的。
+--------------------+--------------+
| content| TblNm|
+--------------------+--------------+
|DSP_ID|DSP_PARTY_...| Party|
|DSP_ID|DSP_Party_...| Identifier|
|DSP_ID|DSP_Party_...| Communication|
|DSP_ID|DSP_Party_...| Individual|
|DSP_ID|DSP_Party_...| Language|
|DSP_ID|DSP_Party_...| Name|
|DSP_ID|DSP_Party_...| Certification|
|DSP_ID|DSP_Party_...|Classification|
|DSP_Id|DSP_Party_...| Organization|
|DSP_ID|DSP_Party_...| Address|
|DSP_Id|DSP_Party_...| Specialty|
|DSP_ID|Parent_DSP...| Relationship|
|DSP_ID|DSP_Party_...| Role|
+--------------------+--------------+发布于 2018-10-07 00:55:25
缓存数据帧并使用N df.write...语句-使用过滤器。
实际上,可序列化意味着Spark不是以这种方式工作的,正如你注意到的那样,对于表使用spark session for Hadoop,对于jdbc to mysql等等,你可以使用foreach等,但不能通过df.write。
https://stackoverflow.com/questions/52680784
复制相似问题