如何将pyspark dataframe转换为Django html表?

2024-04-20 12:32:57 发布

您现在位置:Python中文网/ 问答频道 /正文

所有这些我都是初学者。 因此,我的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))

输出是这样的 enter image description here

如何修复它?是的,我做错了什么。那么,正确显示它们的正确方法是什么呢。先谢谢你


Tags: 代码ingtdffortableitemtr
1条回答
网友
1楼 · 发布于 2024-04-20 12:32:57

实际上,您可以(几乎)直接从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>是表头(对于tnames中的每个元素为1)
  • <td>是表数据(for循环中datas-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>

相关问题 更多 >