【问题标题】:Phoenix sqlline cannot display all columns of table on terminalPhoenix sqlline 无法在终端显示表的所有列
【发布时间】:2015-09-08 08:37:49
【问题描述】:

使用phoenix sqlline 连接hbase。在 SecureCRT 终端上,我只能看到三列超过 10 列的表格。我想显示表格的所有列来测试数据是否正常。有什么需要设置的吗?

0: jdbc:phoenix:10.35.66.72:2181:/hbase> select * from WL.MSGCENTER_PUSHMESSAGE;
+--------------+---------+---------------------------------------------------------------------------------------------------------------------------------------------+
|    PLANID    | BATCHID |                                                                                                                                                 |
+--------------+---------+---------------------------------------------------------------------------------------------------------------------------------------------+
| 520          | 1       | C285995F-AB23-4CF0-A9A4-F29175E9CD36                                                                                                           |
+--------------+---------+---------------------------------------------------------------------------------------------------------------------------------------------+

已选择 1 行(0.805 秒)

【问题讨论】:

    标签: hbase phoenix


    【解决方案1】:

    您可以将输出格式从水平更改为垂直

    !outputformat vertical
    

    【讨论】:

    • 同意,这非常有用,应该是公认的答案。它序列化表,这通常是 JSON API 会做的事情。
    【解决方案2】:

    在启动 sqlline 之前尝试设置终端宽度

    stty cols 200
    

    【讨论】:

      【解决方案3】:

      Sqlline 不够聪明,无法调整列宽。使终端更宽,您可能会看到数据。
      理想情况下,我会建议您使用use squirrel-sql or db-visualizer 连接到 Phoenix。它们是查询 Phoenix 的更好工具。

      看看这个:http://search-hadoop.com/m/9UY0h2sGBoSz1Mta1

      【讨论】:

        【解决方案4】:

        我建议使用 Jupyter 连接 HBase。

        我们的团队使用这种方法,我可以在 Juypter 中通过水平滚动轻松查看所有列。

        这是我使用的代码 sn-p:

        import phoenixdb
        from sqlalchemy import create_engine
        import pandas as pd
        
        pd.set_option('display.max_columns', None)
        pd.set_option('display.max_rows', None)
        pd.set_option('display.max_colwidth', None)
        
        
        def hb_query(x):
            conn = phoenixdb.connect(url='http://xxxxx:1234')
            with conn.cursor() as cursor:
                cursor.execute(x)
                data = cursor.fetchall()
                des = cursor.description
            conn.close()
            columns = [i.name.lower() for i in des]
            df_tmp = pd.DataFrame(data, columns=columns)
            
            return df_tmp
        
        df = hb_query("""
        SELECT *
        FROM TABLE_ABCD
        """)
        
        df    #view rows here
        

        仅供参考,您可能需要先设置 Jupyter,我不知道如何设置以及是否难以设置。我的领导很早就设置了环境。

        【讨论】:

          猜你喜欢
          • 2020-08-20
          • 1970-01-01
          • 1970-01-01
          • 2021-07-06
          • 1970-01-01
          • 1970-01-01
          • 2010-11-07
          • 2023-03-27
          • 1970-01-01
          相关资源
          最近更新 更多