python - 如何将 pyspark 数据框转换为 django html 表?
问题描述
我在所有这些方面都很初学者。所以我的 HTML 代码看起来像这样 -->
<table id="myTable" class="table table-dark table-striped">
{% for item in tnames %}
<tr>
<th scope="col">{{ item }}</th>
</tr>
{% endfor %}
{% for values in datas %}
<tr>
<td scope="row"> {{ values }}</td>
</tr>
{% endfor %}
</table>
django 获取 html 列表的代码是这样的 -->
tnames = []
for n in df.columns:
tnames.append(n)
datas=[]
for i in df.collect():
datas.append(tuple(i))
如何解决?是的,我做错了什么。那么正确显示它们的正确方法是什么。先感谢您。
解决方案
实际上,您可以(几乎)直接从 pyspark 转换为 HTML(通过 pandas)。
html_content = df.toPandas().to_html()
一个简单的例子 df :
spark.range(2).toPandas().to_html()
'<table border="1" class="dataframe">\n <thead>\n <tr style="text-align: right;">\n <th></th>\n <th>id</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>0</td>\n </tr>\n <tr>\n <th>1</th>\n <td>1</td>\n </tr>\n </tbody>\n</table>'
使用不同的选项(请参阅doc),您可以完全实现您想要的。
如果你想保持你的观点,你需要改变一点代码。
请记住:
<tr>
是表格行(1 表示标题,1 表示 的每个元素datas
),<th>
是表头( 中的每个元素为 1tnames
)<td>
datas
是表数据( for循环中的-for循环的每个元素的每个元素1 )。
tnames = df.columns
datas = [tuple(row) for row in df.collect()]
<table id="myTable" class="table table-dark table-striped">
<tr>
{% for item in tnames %}
<th scope="col">{{ item }}</th>
{% endfor %}
</tr>
{% for values in datas %}
<tr>
{% for value in values %}
<td scope="row"> {{ value }}</td>
{% endfor %}
</tr>
{% endfor %}
</table>
推荐阅读
- c# - 嵌套列表/循环依赖的不完整映射
- reactjs - React TypeScript:自定义钩子无限循环
- sql-server - 按层次顺序排序表
- ansible - 如何重命名一个ansible角色名称?
- json - 如何使用 System.Text.Json 处理可为空的引用类型?
- cplex - CPLEX:内存不足
- spring - 根据spring boot中另一个@schedule方法的完成触发@schedule
- swift - NSPopUpButton - 使用 Cocoa 绑定填充动态内容时的奇怪行为
- sql - 填充每个类别的值列表
- vba - 错误时来自 GetAttr 的意外 TRUE 返回值