根据Spark数据集介绍:
正如我们期待着星火2.0,我们计划将数据集的一些令人兴奋的改进,具体包括:...自定义编码器 - 而我们对各种各样的类型目前自动生成编码器,我们想开了一个API,用于自定义对象.
并尝试将自定义类型存储为Dataset导致以下错误:
无法找到存储在数据集中的类型的编码器.导入sqlContext.implicits._支持原始类型(Int,String等)和产品类型(case类).将来版本中将添加对序列化其他类型的支持
要么:
Java.lang.UnsupportedOperationException:找不到针对....的编码器
有没有现成的解决方法?
请注意,此问题仅作为社区Wiki答案的入口点存在.随意更新/改进问题和答案.
scala apache-spark apache-spark-dataset apache-spark-encoders
我正在使用一个SparkSession来运行我的spark应用程序,因为我使用了很多spark-sql功能.我想用它JavaSparkContext来从列表中创建一个RDD.但通过会议,我只能得到一个普通的 SparkContext.有没有办法在这个方向上改变背景?
我正在尝试使用 pipenv 安装与特定 cuda 驱动程序版本兼容的特定版本的 pytorch。该pytorch网站显示了如何将它与PIP:
pip3 install torch==1.3.1+cu92 torchvision==0.4.2+cu92 -f https://download.pytorch.org/whl/torch_stable.html
Run Code Online (Sandbox Code Playgroud)
我试图将其转换为我Pipfile这样的条目:
[[source]]
name = "pytorch"
url = "https://download.pytorch.org/whl/torch_stable.html"
verify_ssl = false
pytorch = {version="==1.3.1+cu92", index="pytorch"}
torchvision = {version="==0.4.2+cu92", index="pytorch"}
Run Code Online (Sandbox Code Playgroud)
但是,这不起作用。无法解决与此版本的依赖关系。我不确定-f在pip3命令中与参数一起列出的 url 是否是pipenv.
我可以通过将命令传递给 pip 来安装这两个库,如下所示:
pipenv run pip install torch==1.3.1+cu92 torchvision==0.4.2+cu92 -f https://download.pytorch.org/whl/torch_stable.html
Run Code Online (Sandbox Code Playgroud)
但我对该解决方案并不满意,因为依赖项不在Pipfile,我必须手动记录此命令的用法。
我有以下格式的 Apache Spark 数据帧
| ID | groupId | phaseName |
|----|-----------|-----------|
| 10 | someHash1 | PhaseA |
| 11 | someHash1 | PhaseB |
| 12 | someHash1 | PhaseB |
| 13 | someHash2 | PhaseX |
| 14 | someHash2 | PhaseY |
Run Code Online (Sandbox Code Playgroud)
每行代表一个阶段,该阶段在由多个这些阶段组成的过程中发生。该ID列表示阶段的顺序,该groupId列显示哪些阶段属于一起。
我想向数据框添加一个新列:previousPhaseName。此列应指示来自同一程序的前一个不同阶段。进程的第一阶段(具有最小 ID 的null阶段)将与前一阶段相同。当一个阶段出现两次或更多次时,第二次(第三次...)出现将具有相同的 previousPhaseName 例如:
df =
| ID | groupId | phaseName | prevPhaseName |
|----|-----------|-----------|---------------|
| 10 | someHash1 | …Run Code Online (Sandbox Code Playgroud)